2012-04-13 52 views
-2

我必須使用Key Event刪除JTable中的選定行。當我選擇一行並按Delete鍵時,應該刪除所選的行值。我怎樣才能做到這一點?如何刪除java swing中鍵事件中JTable中的選定行

+0

如果你問更多的問題,你應該發佈更多你已經嘗試過的東西,這樣人們就不會覺得他們必須爲你思考。此外,您可能想要閱讀http://tinyurl.com/so-hints – 2012-04-13 06:56:38

+0

@AngeloNeuschitzer:無需縮小[* Jon Skeet:Coding Blog *](http://msmvps.com/blogs/jon_skeet/archive/) 2010/08 /第29 /寫的完美-question.aspx);有關詳細信息,請參閱[*如何格式化並鏈接評論?*](http://meta.stackexchange.com/q/19756/163188)。 – trashgod 2012-04-13 09:58:55

回答

1

您必須獲取選定的行(即光標當前所在的位置),然後在該行上調用removeRow。

我建議你閱讀API for JTable.

試試這個(我在我使用它的代碼中使用多行,但你應該能夠打破它的。另外,我不能確定,如果陣列.sort真的很有必要)

int [] toDelete = dataTable.getSelectedRows(); 
Arrays.sort(toDelete); // be shure to have them in ascending order. 
MyTableModel myTableModel = (MyTableModel)dataTable.getModel(); 
for(int ii = toDelete.length -1; ii >=0; ii--) { 
    myTableModel.removeRow(toDelete[ii]); // beginning at the largest. 
} 
+0

什麼是代碼 – user1330693 2012-04-13 07:00:26

+0

@ user1330693我添加了代碼。 – 2012-04-13 07:10:21

+0

您需要轉換爲模型索引,如更新['JTable'](http://docs.oracle.com/javase/6/docs/api/javax/swing/JTable.html)文檔中所示。更好:使用一個'ListSelectionListener'提到[這裏](http://stackoverflow.com/a/10130736/230513)。 – trashgod 2012-04-13 10:10:09