2012-01-08 45 views
1

我正在創建一個學生記錄應用程序...我想要一個可編輯的列。上表,並在該列IM保存所有的更新 我附上表模型的偵聽值TableModelListener

if(table.getSelectedColumn() == 3 && table.getSelectedRow() != -1 && tme.getType() ==  TableModelEvent.UPDATE) 
{ 
// my code here 
table.cellEditAt(row,column); // this is giving me error 
} 

table.cellEditAt自動調用表格模型事件,即產生無限循環......任何其他方法來自動選擇一個單元格編輯?

+1

crossposted http://www.daniweb.com/software-development/java/threads/405375 – mKorbel 2012-01-08 11:54:12

+1

抱歉不明白你......讓我再次統計我的問題,我做了一個應用程序,它將數據從jtable保存到數據庫上進入牢房。我想附加一個監聽器到單元。所以在搜索很多後,我發現tablemodellistener。在表模型偵聽器中,更改了方法表。我所有的東西都可以正常工作,除了這個代碼table.editCellAt(row,col); //此代碼創建一個無限循環。我無法粘貼我的完整代碼,因爲它與4個類相關幷包含一些私人信息。 :) – greatmajestics 2012-01-08 12:59:01

回答

1

答案是張貼SSCCE。我們不介意讀者。我們無法猜測您的editCellAt(...)方法的功能。如果它導致循環,那將是因爲你以某種方式改變模型並生成另一個TableModelEvent。不要這樣做!

如果問題與放置單元格處於編輯模式有關,那麼我猜你需要將該代碼包裝在SwingUtilities.invokeLater()中,以確保在放置另一個單元之前完成原始事件的處理單元格處於編輯模式。

+0

好建議+1 – mKorbel 2012-01-08 21:35:12

2

請張貼SSCCE是demonstate你的問題,例如基於我的問題有關Infinite loop by implements TabelModelListener鏈接到我的answer

+0

抱歉不明白你......讓我再次統計我的問題,我做了一個應用程序,將數據從jtable保存到數據庫輸入到單元格中。我想附加一個監聽器到單元。所以在搜索很多後,我發現tablemodellistener。在表模型偵聽器中,更改了方法表。我所有的東西都可以正常工作,除了這個代碼table.editCellAt(row,col); – greatmajestics 2012-01-08 12:52:28

相關問題