我有一个包含患者姓名的行的表格。我想点击表格中的名字,不同的属性将显示在下面的框中,具体取决于点击的患者。
这是我到目前为止所做的。我不知道我所做的是否正确。在表所在的GUI类中,我添加了监听器,如图所示。不用说它不起作用。有人可以解释一下需要做什么吗?我很困惑。
//Adding listeners for the table data.
void rowClickListener(MouseListener listenForMouseClickonRow)
{
table.addMouseListener( listenForMouseClickonRow);
//table.getModel().addTableModelListener(listenForMouseClickonRow);
}
然后在我的控制器类中,我添加了一个类,它迫使我添加所有这些我甚至不想要的事件:
public class rowClickListener implements MouseListener
{
@Override
public void mouseClicked(MouseEvent e) {
if (SwingUtilities.isLeftMouseButton(e) && e.getClickCount() == 1)
{
System.out.println("TEST mouse click");
}
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
}
答案 0 :(得分:3)
yourtable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
//your handle
}
}
我认为这会更好地发挥作用。使用ListSelectionEvent
,您可以获得所选行。
此外,如果一次只能选择一条记录,请不要忘记将表格的选择模式设置为SINGLE_SELECTION
。