我有一个JTable与JLabel[][]为数据。现在我想检测双击或者选择JLabel或表格单元格(但只在一个列)。如何添加一个动作/的MouseListener上的JLabel分别表格单元?

有帮助吗?

解决方案

如何:

table.addMouseListener(new MouseAdapter() {
  public void mouseClicked(MouseEvent e) {
    if (e.getClickCount() == 2) {
      JTable target = (JTable)e.getSource();
      int row = target.getSelectedRow();
      int column = target.getSelectedColumn();
      // do some action if appropriate column
    }
  }
});

其他提示

基本上相同的建议作为已经接受除了之一:

a)您应的mousePressed处理,不会的mouseClicked。当在相同的像素位置产生到mousePressed和事件的mouseReleased一个的mouseClicked事件只烧成。您如果用户移动鼠标,甚至1个像素,而双击你不会得到预期的双击。

b)还可能要考虑使用columnAtPoint()和rowAtPoint()方法来获取点击的细胞。虽然它可能不会使在这种情况下的差异,如果你曾经尝试使用右鼠标点击一个MouseListener的,因为选择不改变它没关系。所以,如果你在使用这种方法的习惯,让你不会在未来的问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top