单击 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 时鼠标事件不起作用的主要内容,如果未能解决你的问题,请参考以下文章
嵌入在对象元素中的 SVG 上的鼠标指针悬停/jquery 单击事件不起作用