我有一個jTable,它當前顯示並允許編輯一個數據庫表,我現在試圖對添加元組進行排序。添加一行到一個jTable在downarrow底部
我想讓它自動添加一行在底部的downarrow。所以如果我在桌子的底部並點擊我的向下箭頭,下面會出現一個新的行。我只是無法弄清楚如何去做。
感謝 詹姆斯
我有一個jTable,它當前顯示並允許編輯一個數據庫表,我現在試圖對添加元組進行排序。添加一行到一個jTable在downarrow底部
我想讓它自動添加一行在底部的downarrow。所以如果我在桌子的底部並點擊我的向下箭頭,下面會出現一個新的行。我只是無法弄清楚如何去做。
感謝 詹姆斯
的JTable
行動處理髮生在javax.swing.plaf.basic.BasicTableUI
。在你的情況下,你可能需要註冊一個新的動作SCROLL_DOWN_CHANGE_SELECTION
。在動作中,檢查當前選擇==表的最後一行。
如果這不起作用,請在javax.swing.plaf.basic.BasicTableUI.Actions.actionPerformed(ActionEvent)
中設置一個斷點以查看哪個操作確實執行。
你需要創建一個的KeyListener,並添加到您的表:
public void keyReleased(KeyEvent e) {
int keyCode = e.getKeyCode();
if (keyCode == KeyEvent.VK_DOWN)
// check if selected table row = last row and if so: add new row to table model
}
格爾茨,
斯泰恩
JTable具有向下箭頭鍵的默認操作。如果你想改變這種行爲,那麼你需要創建一個自定義的動作。通過使用Wrapping Actions概念來利用默認代碼,您可以輕鬆完成此操作。
您還可以查看Table Tabbing以獲取包裝Action的工作示例。你爲Action編寫的代碼會簡單得多,如下所示:
if (last row is selected)
add a new row to the table
invoke the default down arrow action
這會在按下向下箭頭時添加一行。您至少需要檢查是否選擇了最後一行。 – jzd 2011-03-08 12:12:01
正確,但可以使用table.getSelectedRow()== table.getRowCount()-1來完成。順便說一句,我編輯了我的文章,你需要在這種情況下使用keyReleased i.o.在keyPressed。 – 2011-03-08 13:31:55
你不應該使用KeyListener。 Swing被設計爲使用鍵綁定來實現這種類型的功能。 – camickr 2011-03-08 15:43:52