在我的应用程序中,我有一些类似的线程在做他们的东西,我想在一个表的一行中表示他们的一些属性(每行一个线程)。我将一个行对象传递给相应的线程并在更改值时更新它们,但我在API中找不到类似的东西。那么用实际属性保持行更新的正确策略是什么?
答案 0 :(得分:3)
使用JTable
,创建此类表的传统方法是使用类实现TableModel
(或扩展AbstractTableModel
或DefaultTableModel
)。在那里,您将维护您的数据,并以这样的方式执行此操作,以便您可以轻松查找每个线程的数据结构。您将实现getValueAt
方法以返回每行线程的值。当Thread的属性发生变化时,它会更新TableModel。然后,您需要告诉您的JTable
您的数据已更改并从模型更新。您可以通过触发tableChanged
事件来执行此操作。 AbstractTableModel
及其后代有各种fireTableChanged
类型方法可用。确保在EventDispatchThread中执行此事件触发。有关与绘制GUI交互的工作线程的信息,请参阅topics on currency in Swing和SwingWorker。
答案 1 :(得分:0)
看看绑定apis,例如JGoodies binding api。