addPointerPressedListener 无法在 Table 上工作

addPointerPressedListener not working on Table

我的表单中有一个包含很多值的 table 组件。我希望在单击 table 中的每个单元格时弹出一个窗口以显示一些信息。我为此写了一个代码:

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

此方法仅适用于最后一行和最后一列,也不能选择正确的单元格(最近的单元格)。我想要的是在 table 中单击时选择正确的单元格。执行此操作的替代方法是什么?

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

    @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);
    }

两种方式我都遇到了问题。它仅在外部细胞和特定点起作用。

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