【发布时间】: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 作为答案发布。
标签: java swing jtable awt mouseevent