2012-01-08 35 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