我有添加了TextArea的smartgwt画布。我想处理MouseDown事件并在用户单击画布上的任何位置时更改其边框。我的代码看起来像这样。当我包含在画布文本区域单击SmartGWT:单击画布的子元素时处理鼠标
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);
}
});
MouseDown事件不会触发。有没有办法处理点击画布子元素?
我是新来的gwt。我可能错过了一些配置。
作为替代方案,我尝试了gwt的FocusPanel,当TextArea添加到FocusPanel时,我能够接收到MouseDown。
我使用的是smartgwt 2.4和gwt 2.4。
非常感谢您的帮助。
如果我是正确的,那么TextArea是一个GWT控件。应尽可能避免混用SmartGWT和GWT小部件,否则在尝试修复其创建的所有布局问题时会遇到许多麻烦。在处理SmartGWT时,您应该会遇到很多古怪和非直观且不明显的行为。 SmartGWT也非常重,即使在适度的电脑上,它也会运行缓慢。无论如何,SmartGWT公开TextAreaItem,你需要插入到表单小部件。 – ZalewaPL
@ZelwaPL,感谢您的快速回复。同意你的看法,我改变了我的项目,尽可能地坚持使用SmartGWT小部件。 – user1899956