addPointerPressedListener无法在Table上运行

时间:2015-02-03 13:02:11

标签: codenameone

我的表单中有一个包含大量值的表组件。我希望弹出一个单击表格中的每个单元格来显示一些信息。我写了一个代码:

dataTable.addPointerPressedListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    Label c = (Label) dataTable.getClosestComponentTo(evt.getX(), evt.getY());
                    Dialog.show("Artifact", information, "Ok", null);
                }
            });

此方法仅适用于最后一行和最后一列,也不适用于选择正确的单元格(最近的单元格)。我想要的是在点击表格中选择正确的单元格。这样做的替代方案是什么?

我尝试了另一种方法。代码是

    @Override
    public void addPointerPressedListener(ActionListener l) {
         l = new ActionListener() {
         public void actionPerformed(ActionEvent evt) {
         Label c = (Label) getClosestComponentTo(evt.getX(), evt.getY());
         Dialog.show("Popup", c.getText(), "Ok", null);
        }
    };
        super.addPointerPressedListener(l);
    }

两种方式我都遇到了问题。它只在外部细胞和特定点上工作。

1 个答案:

答案 0 :(得分:1)

该表是Container,其中每个单元格本身就是一个组件。要跟踪单个单元格,您可以覆盖表格中的createCell方法并跟踪从那里返回的组件。