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
使用 JTable
s 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
我正在使用 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
使用 JTable
s 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