我有一个存储“ShipmentItem”的 JTree,它们上面的 .toString() 显示数量,然后是 ShipmentItem 的名称。在某些时候,我一次更改了多个项目的数量,但 toString() 在我实际单击该特定树节点之前不会刷新。我不想必须扩展 JTree 才能使用“Property Fired”,我只想能够刷新它以便它显示更新。
我尝试了 jtree.setModel(tree.getModel()) 这似乎根本不起作用。
最佳答案
当您对 TreeModel
进行更改时(通过调整 ShipmentItem
对象来完成),您必须确保您的 TreeModel
触发正确事件。这将导致 JTree
重新绘制正确的部分。例如,如果您从 DefaultTreeModel
开始,您的扩展应该调用 nodeChanged
当节点的对象发生变化时。
注意:您不必调整 toString
方法来正确呈现。您正在寻找的概念是 TreeCellRenderer
(查看 Swing tutorial 了解更多信息)
关于java - 在不扩展 JTree 的情况下,是否可以在更改树中的对象后强制更新模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10193433/