如何找出在一个GWT网格画布中选择了哪一行?

时间:2014-07-16 08:58:15

标签: java gwt java-canvas

我正在开发一个像this in the fiddle

这样的GWT网格画布

我的gridCanvas对象的水平线代表路径。此外,对象具有表示截面的垂直线。

我想知道如何获得用户的选择,例如,如果用户选择了路线或路段以及选择了哪条路线或路段。

这里有一个 screenshot案例。

1 个答案:

答案 0 :(得分:0)

添加您想要收听的事件,例如gridCanvas.addClickHandler(ClickHandler),并使用ClickEvent获取鼠标位置并计算用户点击的单元格。

gridCanvas.addClickHandler(new ClickHandler() {
   @Override
   public void onClick(ClickEvent event) {
       int row = event.getY() / getCellHeight();
       int col = event.getX() / getCellWidth();
   }
});

使用getX()getY(),您可以获得鼠标的位置。由于构建了网格,因此您还应该具有单元格的宽度和高度。有了这些信息,就可以轻松获得行和/或列。

我制作了一份完整的样本,你可以找到here

部署了样本here