0

我有一个包含患者姓名的行的表。我想单击表格中的名称,根据单击的患者,不同的属性将显示在下面的框中。

这是我到目前为止所做的。我不知道我所做的是否正确。在表所在的 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
    }
}
4

1 回答 1

3
    yourtable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
        @Override
        public void valueChanged(ListSelectionEvent e) {
            //your handle
        }
    }

我认为这会更好。使用 ,ListSelectionEvent您可以获得选定的行。

另外,如果一次只能选择一条记录,不要忘记将表格的选择模式设置为SINGLE_SELECTION.

于 2013-05-06T19:39:31.730 回答