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

问题描述

我创建了一个简单的鼠标事件。当用户单击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();
  }

解决方法

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