我想在单击面板时执行一个事件,就像用户单击按钮时发生的那样。
我需要这个来处理这个面板的点击事件。
您必须使用 GWTFocusPanel
使其内容可聚焦,并添加捕获鼠标和键盘事件的能力。所以把你的panel
内心包裹起来FocusPanel
。
Panel panel = new Panel(); //Your panel here(ex;hPanel,vPanel)
FocusPanel focusPanel = new FocusPanel();
focusPanel.addClickListener(new ClickListener(){
public void onClick(Widget sender) {
// TODO Auto-generated method stub
}
});
focusPanel.add(panel);
另一种可能性(没有 FocusPanel)
HorizontalPanel hpanel = new HorizontalPanel();
hpanel.sinkEvents(Event.CLICK);
hpanel.addHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
// TODO Auto-generated method stub
}
}, ClickEvent.getType());
我会做一个新的小部件(在这个例子中扩展一个 Absolute 面板),它像这样实现 HasClickHandlers 接口
public class MyCustomPanel extends AbsolutePanel
implements HasClickHandlers
{
public HandlerRegistration addClickHandler(
ClickHandler handler)
{
return addDomHandler(handler, ClickEvent.getType());
}
}
然后在我的代码中我会这样做
MyCustomPanel mPanel = new MyCustomPanel();
mPanel.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
// Do on click stuff here.
}
});