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

时间:2010-02-15 15:11:14

标签: java swing

在我的应用程序中,我有一些类似的线程在做他们的东西,我想在一个表的一行中表示他们的一些属性(每行一个线程)。我将一个行对象传递给相应的线程并在更改值时更新它们,但我在API中找不到类似的东西。那么用实际属性保持行更新的正确策略是什么?

2 个答案:

答案 0 :(得分:3)

使用JTable,创建此类表的传统方法是使用类实现TableModel(或扩展AbstractTableModelDefaultTableModel)。在那里,您将维护您的数据,并以这样的方式执行此操作,以便您可以轻松查找每个线程的数据结构。您将实现getValueAt方法以返回每行线程的值。当Thread的属性发生变化时,它会更新TableModel。然后,您需要告诉您的JTable您的数据已更改并从模型更新。您可以通过触发tableChanged事件来执行此操作。 AbstractTableModel及其后代有各种fireTableChanged类型方法可用。确保在EventDispatchThread中执行此事件触发。有关与绘制GUI交互的工作线程的信息,请参阅topics on currency in SwingSwingWorker

答案 1 :(得分:0)

看看绑定apis,例如JGoodies binding api