在我的应用程序中,我有一些类似的线程在做它们的事情,我想在表格的一行中表示它们的一些属性(每行一个线程)。我将一个行对象传递给相应的线程并根据更改的值更新它们,但我在 API 中找不到类似的东西。那么,使用实际属性更新行的正确策略是什么?
最佳答案
使用 JTable
,创建此类表的传统方法是让一个类实现 TableModel
(或扩展 AbstractTableModel
或 默认表模型
)。在那里您将维护您的数据,并以这样一种方式进行维护,以便您可以轻松地为每个线程查找数据结构。您将实现 getValueAt
方法以返回每行线程的值。当一个线程的属性改变时,它会去更新 TableModel。然后您需要告诉您的 JTable
您的数据已更改并从模型更新它。您可以通过触发 tableChanged
事件来完成此操作。 AbstractTableModel
及其后代有多种可用的 fireTableChanged
类型的方法。确保在 EventDispatchThread 中触发事件。参见 topics on currency in Swing和 SwingWorker有关与绘画 GUI 交互的工作线程的信息。
关于java - 如何将对象绑定(bind)到 Swing 表中的一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2266812/