java - 将监听器添加到表中

标签 java swing mouse-listeners

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

这是我到目前为止所做的事情。我不知道我所做的是否正确。在表所在的 GUI 类中,我添加了监听器,如图所示。不用说它不起作用。有人可以解释一下需要做什么吗?我对这一切感到困惑。

//Adding listeners for the table data.
void rowClickListener(MouseListener listenForMouseClickonRow)
 {
     table.addMouseListener( listenForMouseClickonRow);
     //table.getModel().addTableModelListener(listenForMouseClickonRow);
 }

然后在我的 Controller 类中添加了一个类,它迫使我添加所有这些我什至不想要的事件:

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
    }
}

最佳答案

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

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

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

关于java - 将监听器添加到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16405645/

相关文章:

java - 使用 Spring JDBC 模板检索自定义自动生成的 key

Java - 如何避免每次都覆盖 addObserver Observable?

java - JTextField 和绘图图像不起作用

java - 禁用 JPanel 的子项

java - 如何用鼠标滚轮移动JSlider

java - java 上的鼠标中键无法正常工作

java - 在java中实现python count函数的最佳方法是什么?

java - 致命[主要] org.apache.hadoop.mapreduce.v2.app.MRAppMaster:启动MRAppMaster java.lang.NoClassDefFoundError时出错

java - 将事件监听器添加到组件并将该组件添加到面板或框架的顺序是什么?

java - java 7/8 中具有大小限制的 linkedtransfer 队列的任何替代方案?