JTable 如何触发选择一行或双击一行的事件

JTable how to fire event selecting a row or double click on a row

我正在使用 javax.swing.JTable 来显示数据库 table 中的行。 我需要针对两种不同的情况触发两个不同的事件:

我已经在寻找有关堆栈溢出的答案,但没有找到令人满意的答案。 有什么想法吗?

您可以将鼠标侦听器添加到 table 并使用鼠标事件捕获那里的事件,如下所示

table.addMouseListener
      (
        new MouseAdapter()
        {
          public void mouseClicked(MouseEvent e)
          {
            if (e.getClickCount() == 2)
            {
            }
            if (e.getClickCount() == 1)
            {
            }
          }
        }
      );
    }

并捕获您可以使用的选择事件

table.getSelectionModel().addListSelectionListener(...);

when is selected at least a row (or a click on at least a row is performed).

您应该通过 ListSelectionListener 使用 JTables ListSelectionModel 监控行选择的变化。当用户使用鼠标或键盘更改选择时,或者如果选择因某种原因以编程方式更改时,这将通知您

有关详细信息,请参阅 How to Write a List Selection Listener

when a double click on a row is performed

唯一可以检测到的方法是使用 MouseListener。通常,用户希望单击鼠标左键执行一个操作,而单击鼠标右键执行其他操作。

您需要使用 SwingUtilities.isLeftMouseButton or SwingUtilities.isRightMouseButton 来确定用户实际在做什么。

有关详细信息,请参阅 How to Write a Mouse Listener