在用作表格单元格的面板中的按钮中获取事件

时间:2009-07-08 17:16:41

标签: gwt event-handling

我正在使用GWT 1.6。

我正在创建一个包含Button和Label的面板,然后我将其添加到FlexTable作为其单元格之一。

Button没有收到任何Click事件。我看到该表支持确定单击哪个Cell,但在这种情况下,我希望Mouse事件传播到单元格内的各个小部件。关于如何做到这一点的任何想法?

3 个答案:

答案 0 :(得分:1)

是的,我也是这样 - 表中的小部件都不会收到事件。我最终使用了这样的代码:


FixedWidthGrid dataTable = createDataTable();
...
dataTable.addTableListener(new TableListener() {

    public void onCellClicked(SourcesTableEvents sender, int row, int cell) {
        storyViewer.showStory(table.getRowValue(row));
    }

});

你可以从类似的东西开始,然后以编程方式将事件发送到你的按钮小部件,以便出现点击。

答案 1 :(得分:0)

如果你知道你的桌子有多大,那就用网格代替。您的所有小部件都将收到活动。我已经完成了这个并创建了我自己的可排序表。

答案 2 :(得分:0)

你必须继承Button google Class并添加一个带有两个额外参数的构造函数(int col,int row)。 e.g。

public class RuleButton extends Button {

 private int row;
 private int col;

 public RuleButton(String html, ClickListener listener, int row, int col) {
  super(html, listener);
  setRow(row);
                setCol(col);
 }
        // getters and setters for row and col attributes.
}

添加按钮时,调用此构造函数并将row和col索引传递给它。