2011-01-25 76 views

回答

1

你試過addMouseListener()嗎?我希望你使用Swing的JTable。

+0

是的我使用的Swing和不,我沒有嘗試addMouseListener。現在會嘗試......謝謝。 – Cristian 2011-01-25 15:52:57

+0

這有點令人困惑,你可以給一些指針或一些鏈接?我一直在尋找,沒有結果。我只想將選定的jTable CELL的行和列添加到jLabel中..... – Cristian 2011-01-25 15:57:30

+0

我不認爲這是解決此問題的好方法。 MouseEvent不會很容易轉換爲列和行。見Develman的答案。 – jzd 2011-01-25 16:24:07

17

您可以使用以下方法,對JTable中獲取選中的單元格的行和列:

int rowIndex = table.getSelectedRow(); 
int colIndex = table.getSelectedColumn(); 

,並添加一個SelectionListener表趕上事件選擇的表時。

32

現有的答案有效,但如果您不啓用單元格選擇,則有一種替代方法可能會更好。在你的MouseListener裏面,做這樣的事情:

public void mouseClicked(java.awt.event.MouseEvent event) { 
    int row = theTable.rowAtPoint(event.getPoint()); 
    int col = theTable.columnAtPoint(event.getPoint()); 
    // ... 
3

它對我有用!!!

jTable1.addMouseListener(new java.awt.event.MouseAdapter() { 
@Override 
public void mouseClicked(java.awt.event.MouseEvent evt) { 
    int row = jTable1.rowAtPoint(evt.getPoint()); 
    int col = jTable1.columnAtPoint(evt.getPoint()); 
    if (row >= 0 && col >= 0) { 


    } 
} 
}); 
0

我發現,當列隱藏/重新排序columnAtPoint返回可見列索引,這不是我所需要的。代碼工作對我來說是

int row = theTable.convertRowIndexToModel(theTable.rowAtPoint(event.getPoint())); 
int col = theTable.convertColumnIndexToModel(theTable.columnAtPoint(event.getPoint()));