Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将对象绑定到Swing表中的行?_Java_Swing - Fatal编程技术网

Java 如何将对象绑定到Swing表中的行?

Java 如何将对象绑定到Swing表中的行?,java,swing,Java,Swing,在我的应用程序中,我有一些类似的线程在执行它们的工作,我想在表的一行中表示它们的一些属性(每行一个线程)。我会将一个行对象传递给相应的线程,并在值发生变化时更新它们,但在API中找不到类似的内容。那么,用实际属性更新行的正确策略是什么呢?看看绑定API,例如。使用JTable,创建这样一个表的传统方法是让类实现TableModel(或扩展AbstractTableModel或DefaultTableModel)。在那里,您可以维护数据,并且这样做可以使您很容易地查找每个线程的数据结构。您可以实现

在我的应用程序中,我有一些类似的线程在执行它们的工作,我想在表的一行中表示它们的一些属性(每行一个线程)。我会将一个行对象传递给相应的线程,并在值发生变化时更新它们,但在API中找不到类似的内容。那么,用实际属性更新行的正确策略是什么呢?

看看绑定API,例如。

使用
JTable
,创建这样一个表的传统方法是让类实现
TableModel
(或扩展
AbstractTableModel
DefaultTableModel
)。在那里,您可以维护数据,并且这样做可以使您很容易地查找每个线程的数据结构。您可以实现
getValueAt
方法来返回每行线程的值。当线程的属性更改时,它将更新TableModel。然后,您需要告诉您的
JTable
,您的数据已经更改,并从模型中进行更新。您可以通过触发
tableChanged
事件来实现这一点
AbstractTableModel
及其后代提供了多种
fireTableChanged
类型的方法。确保在EventDispatchThread中触发事件。有关与绘制GUI交互的工作线程的信息,请参见和