单击 JTable 时鼠标事件不起作用

Posted

技术标签:

【中文标题】单击 JTable 时鼠标事件不起作用【英文标题】:Mouse Event not working when clicking JTable 【发布时间】:2021-02-12 21:07:35 【问题描述】:

我创建了一个简单的鼠标事件。当用户单击 JTable 时,它​​将获取 JTable 中的记录并将它们显示在 JTextField 中。在这种情况下,我试图将表格中的 ID 显示到文本字段中。

public void fetchRec() 
    xtable.addMouseListener(new MouseAdapter() 
        public void rowClicked(MouseEvent evt)
            xtable =(JTable) evt.getSource();
            int row = xtable.rowAtPoint( evt.getPoint() );
            int column = xtable.columnAtPoint( evt.getPoint() );
            String s=xtable.getModel().getValueAt(row, column)+"";
            idLabelField.setText(s);
        
    );

我在这里调用该方法,但它一直告诉我 rowClicked 方法未使用。我不明白它是如何使用的?除了这个,我打电话的其他一切都在工作。

   public void bookDimensions() throws Exception 
    addTextLabels();
    addTextFields();
    addPanelButtons();
    addRecord();
    addTable();
    fetchRec();
  

【问题讨论】:

你正在实现一个自定义的MouseAdapter,所以你需要做的是重写一个相应的方法,见MouseAdapter。所以总的来说,你的rowClicked() 应该是mouseClicked(MouseEvent e)。为确保您实际上覆盖了 MouseAdapter 中的正确方法,请将 @Override 注释添加到该方法中。 旁注:有更好的方法来做到这一点。例如。解决方案 Reto 作为答案发布。 【参考方案1】:

打开单元格选择并监听选择模型而不是鼠标事件。见java: how to select only one cell in a jtable and not the whole row

【讨论】:

如上所述,this 是选择表格的正确路径。

以上是关于单击 JTable 时鼠标事件不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如何在JTable的单元格上禁用鼠标单击事件?

嵌入在对象元素中的 SVG 上的鼠标指针悬停/jquery 单击事件不起作用

在用户作为主持人或观众加入后,在 Agora GroupVoice 中调用鼠标单击事件不起作用

wpf 动画 - 鼠标按下事件不起作用

JTable - 选定行点击事件

当我有鼠标悬停事件时,Animate()不起作用