2012-06-21 49 views
0

下面是我的代碼的片段。我有一個JTable。我已經擴展了DefaultCellEditor來創建我自己的編輯器。我爲這些單元添加了鍵監聽器和鼠標監聽器。我也有一個JButton。當我點擊JButton時,我想讓JTable中的第一個單元格進入編輯模式。爲此,我使用了requestFocus和editCellAt(0,0)。我已經將這些代碼放在了action中。當通過editCellAt強制編輯單元格時,JTable單元格不會觸發按鍵事件(row,col)

public void actionPerformed(ActionEvent e) 
{ 
    System.out.println("action performed"); 

    if(e.getSource().equals(btn)) 
    { 
    oTable.requestFocus(); 
    oTable.setRowSelectionInterval(0, 0); 
    oTable.editCellAt(0, 0); 
    } 
} 

這將光標置於第一個單元格中。但是當我輸入任何東西時,關鍵事件都不會被解僱!注意:如果我用鼠標單擊單元格然後鍵入,它會觸發按鍵事件。但我不想做這個額外的點擊。

回答

6

似乎爲我工作。也許你可以嘗試以下方法:

table.editCellAt(0, 0); 
table.getEditorComponent().requestFocus(); 
+0

這不僅解決了這個問題,而且還「如何語法編輯細胞或使可用於編輯選定行的單元格?」。解決了我的問題,也:) – instinct

相關問題