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

时间:2015-01-02 12:51:24

标签: java swing jtable double-click

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

  • 当选择至少一行时(或至少执行一次点击)。
  • 执行双击行时。

我已经找到了关于堆栈溢出的答案,但我没有找到任何令人满意的东西。 有什么想法吗?

2 个答案:

答案 0 :(得分:4)

  

何时至少选择一行(或至少执行一次点击)。

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

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

  

执行双击行

您可以通过使用MouseListener来检测此问题的唯一方法。通常,用户希望鼠标左键单击会执行一个操作,鼠标右键会执行其他操作。

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

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

答案 1 :(得分:0)

您可以向表中添加鼠标侦听器,并使用鼠标事件(如下所示)捕获事件。

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

并捕捉选择事件,您可以使用

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