TextArea가 추가 된 smartgwt Canvas가 있습니다. 사용자가 캔버스의 아무 곳이나 클릭 할 때 MouseDown 이벤트를 처리하고 테두리를 변경하려고합니다. 내 코드는 다음과 같습니다.SmartGWT : Canvas의 하위 요소를 클릭하면 마우스 처리
final com.smartgwt.client.widgets.Canvas can = new com.smartgwt.client.widgets.Canvas();
can.setCanFocus(true);
can.setBorder("2px Solid Blue");
can.setCanDragResize(true);
TextArea ta = new TextArea();
can.addChild(ta);
can.addMouseDownHandler(new MouseDownHandler() {
@Override
public void onMouseDown(MouseDownEvent event) {
ChangeCanvasBorder(can);
}
});
Canvas에 포함 된 TextArea를 클릭하면 MouseDown 이벤트가 발생하지 않습니다. 캔버스 하위 요소를 클릭하여 처리하는 방법이 있습니까?
나는 새로운 것을 알고 싶습니다. 일부 구성을 놓친 것 같습니다.
다른 방법으로 나는 gwt의 FocusPanel을 시도하고 FocusPanel에 추가 된 TextArea를 클릭하면 MouseDown을받을 수 있습니다.
저는 smartgwt 2.4 및 gwt 2.4를 사용하고 있습니다.
도움을 위해 미리 감사드립니다.
내가 맞다면 TextArea는 GWT 위젯입니다. SmartGWT와 GWT 위젯을 혼합하는 것은 가능한 한 피해야 만합니다. 또는 생성 된 모든 레이아웃 문제를 해결할 때 많은 어려움을 겪을 것입니다. SmartGWT를 다룰 때 많은 기이함과 비 직관적이고 명확하지 않은 동작을 기대해야합니다. SmartGWT 또한 매우 무겁고 적당히 좋은 컴퓨터에서도 천천히 작동합니다. 어쨌든, SmartGWT는 폼 위젯에 삽입해야하는 TextAreaItem을 노출합니다. – ZalewaPL
@ ZelwaPL, 빠른 답장을 보내 주셔서 감사합니다. 당신과 동의, 나는 가능한 한 많이 SmartGWT 위젯을 고수하기 위해 프로젝트를 변경했다. – user1899956