我的表单中有一个包含大量值的表组件。我希望弹出一个单击表格中的每个单元格来显示一些信息。我写了一个代码:
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);
}
两种方式我都遇到了问题。它只在外部细胞和特定点上工作。
答案 0 :(得分:1)
该表是Container
,其中每个单元格本身就是一个组件。要跟踪单个单元格,您可以覆盖表格中的createCell
方法并跟踪从那里返回的组件。