我正在使用javax.swing.JTable来显示数据库表中的行。 我需要为两种不同的情况发射两个不同的事件:
我已经找到了关于堆栈溢出的答案,但我没有找到任何令人满意的东西。 有什么想法吗?
答案 0 :(得分:4)
何时至少选择一行(或至少执行一次点击)。
您应该使用JTable
ListSelectionModel
通过ListSelectionListener
监控对行选择的更改。当用户使用鼠标或键盘更改选择或者由于某种原因以编程方式更改选择时,这将通知您
有关详细信息,请参阅How to Write a List Selection Listener
执行双击行
您可以通过使用MouseListener
来检测此问题的唯一方法。通常,用户希望鼠标左键单击会执行一个操作,鼠标右键会执行其他操作。
您需要使用SwingUtilities.isLeftMouseButton
或SwingUtilities.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(...);