我有添加了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