Java JTable跟踪当用户更改单元格时,只有用户

Java JTable跟踪当用户更改单元格时,只有用户,java,swing,jtable,Java,Swing,Jtable,我正在开发我的第一个Java/Swing应用程序,我需要一些关于JTable的帮助 我遇到的问题是,我想跟踪用户何时编辑我的JTable,而不是应用程序。我做了以下工作: //Made my table then did the following line: table.getModel().addTableModelListener(this); //Have a listener set up: public void tableChanged(TableModelEvent e)

我正在开发我的第一个Java/Swing应用程序,我需要一些关于JTable的帮助

我遇到的问题是,我想跟踪用户何时编辑我的JTable,而不是应用程序。我做了以下工作:

//Made my table then did the following line:

table.getModel().addTableModelListener(this);

//Have a listener set up:

public void tableChanged(TableModelEvent e) {
  // TODO Auto-generated method stub
        System.out.println(e);
 }
现在的问题是,当我的程序对表进行更改时,我不希望触发这个,例如,我加载了一个新表,加载的文件有15行,然后我会触发15个不同的事件。我只想在用户对单元格进行编辑时触发


感谢您的帮助。提前感谢。

安德鲁的评论有一些最常用的方法来处理这种情况。根据您的模型的构造/存储方式以及您对更改的具体操作,您可能会在更改时在模型中触发某些内容,或者在setValueAt方法下触发这些内容。

Andrew的评论提供了一些处理这种情况的最常用方法。根据模型的构造/存储方式以及对更改的具体操作,您可能会在更改时在模型中触发某些内容,或者在setValueAt方法下触发。

为什么不在填充表后添加
TableModelListener
?可以在任何给定时间使用新行填充表,行删除或用户加载新文件,这对我的应用程序来说不是一个解决方案。因此,要么在用户操作(刷新整个表)之前删除TML,然后在其结束后再次添加,要么在代码中设置一个标志,指示正在发生编程更改。我正在考虑这样做,但是我们希望有一种更干净的方法。为什么不在填充表之后添加
TableModelListener
?该表可以在任何给定的时间填充新行、行删除或用户加载新文件,因此这不是我的应用程序的解决方案。因此,在用户操作之前删除TML(刷新整个表)并在结束后再次添加,或在代码中设置一个标志,指示正在进行编程更改。我曾想过这样做,但希望有一种更干净的方法。