2014-12-06 96 views
0

enter image description here 特定的單元格的值我有一個JTable,並考慮到這些代碼:獲取的JTable用鼠標點擊

jTable.addMouseListener(new MouseAdapter(){ 
       public void mouseClicked(MouseEvent e){ 

        System.out.println(jTable.getRowCount()); 
        System.out.println(jTable.getModel().getValueAt(jTable.getRowCount(), 0)); 
       } 
      }); 

如果我點擊某一行,如上面的圖片,我點擊了第二排,我怎麼能得到那一行的內容?(如何獲得加拿大)?

+1

爲什麼不使用'ListSelectionListener'? – Radiodef 2014-12-06 22:22:39

+0

同意Radiodef,連接到ColumnModel的ListSelectionListener將是更安全的方法。這是不可能的,當MouseListener的被稱爲 – MadProgrammer 2014-12-06 22:44:30

+0

的[確定哪些JTable的細胞被點擊]可能的複製(http://stackoverflow.com/questions/4795586/determine-which-jtable-cell-is-clicked選擇將已改變) – 2017-04-12 08:45:04

回答

1

就我個人而言,我使用鼠標點擊事件。你可以嘗試這樣的事情您的活動方法內:

private void myTableMouseClicked(java.awt.event.MouseEvent evt) {           
    int row = this.myTable.getSelectedRow(); 
    int column = this.myTable.getSelectedColumn(); 
    this.myTable.getValueAt(selectedRow, selectedColumn); 
} 

請注意,getValueAt方法返回一個對象。您可能需要將返回的Object轉換爲它應該是的對象。而且你也可以有一個全局變量,它將會返回getValueAt返回的值作爲你需要的值。

我希望它有幫助。

+1

選擇尚未更改,因爲您的MouseListener可能在表之前被調用,導致檢索到錯誤的單元格 – MadProgrammer 2014-12-06 22:41:50