GWT UiBinder:将鼠标处理程序添加到面板或网格
我找不到将鼠标处理程序添加到GWT面板或网格的方法 在使用UiBinder时 我基本上需要一种能够在网格上检测以下内容的方法:GWT UiBinder:将鼠标处理程序添加到面板或网格,gwt,grid,mouseevent,uibinder,Gwt,Grid,Mouseevent,Uibinder,我找不到将鼠标处理程序添加到GWT面板或网格的方法 在使用UiBinder时 我基本上需要一种能够在网格上检测以下内容的方法: 检测事件发生在哪个单元中 检测鼠标上升事件 检测鼠标按下事件 检测鼠标移出事件 检测鼠标悬停事件 我曾计划尝试将绝对面板覆盖在上面 网格的顶部。我可以在AbsolutePanel上检测到这些事件, 然后根据事件的位置,确定 如果不是AbsolutePanel,事件将在年发生 覆盖在网格顶部,然后相应地采取行动。我现在知道了 在以下方面对面板施加了完全相同的限制: 没有单
~Scott您可以扩展网格,并让它实现适当的接口,如:
public class ClickableGrid extends Grid implements HasMouseDownHandlers {
...
public HandlerRegistration addMouseDownHandler(MouseDownHandler handler) {
return addDomHandler(handler, MouseDownEvent.getType());
}
}
然后在模板中使用它
<my:ClickableGrid ui:field="clickableGrid">
希望能有帮助 …或者只需将
网格
放在聚焦面板内
:
public class MouseGrid extends Composite {
public MouseGrid() {
Grid grid = new Grid(3, 3);
for (int row = 0; row < 3; ++row) {
for (int col = 0; col < 3; ++col) {
grid.setText(row, col, "" + row
+ ", "
+ col);
}
}
FocusPanel panel = new FocusPanel();
panel.setWidget(grid);
initWidget(panel);
panel.addMouseDownHandler(new MouseDownHandler() {
@Override
public void onMouseDown(MouseDownEvent event) {
Window.alert("mouse down");
}
});
}
}
public类MouseGrid扩展复合{
公鼠{
网格=新网格(3,3);
对于(int行=0;行<3;++行){
用于(整数列=0;列<3;++列){
grid.SETEXT(行,列,“+”行
+ ", "
+col);
}
}
FocusPanel面板=新FocusPanel();
panel.setWidget(网格);
初始化小部件(面板);
panel.addMouseDownHandler(新的MouseDownHandler(){
@凌驾
MouseDown上的公共无效(MouseDownEvent事件){
Window.alert(“鼠标按下”);
}
});
}
}
public class MouseGrid extends Composite {
public MouseGrid() {
Grid grid = new Grid(3, 3);
for (int row = 0; row < 3; ++row) {
for (int col = 0; col < 3; ++col) {
grid.setText(row, col, "" + row
+ ", "
+ col);
}
}
FocusPanel panel = new FocusPanel();
panel.setWidget(grid);
initWidget(panel);
panel.addMouseDownHandler(new MouseDownHandler() {
@Override
public void onMouseDown(MouseDownEvent event) {
Window.alert("mouse down");
}
});
}
}