我有一个存储“ShipmentItem”的 JTree,它们上的 .toString() 显示数量,然后是 ShipmentItem 的名称。在某些时候,我一次更改了多个项目的数量,但 toString() 在我实际单击该特定树节点之前不会刷新。我不想扩展 JTree 以使用“Property Fired”,我只想能够刷新它以显示更新。
我试过 jtree.setModel(tree.getModel()) 这似乎根本不起作用。
我有一个存储“ShipmentItem”的 JTree,它们上的 .toString() 显示数量,然后是 ShipmentItem 的名称。在某些时候,我一次更改了多个项目的数量,但 toString() 在我实际单击该特定树节点之前不会刷新。我不想扩展 JTree 以使用“Property Fired”,我只想能够刷新它以显示更新。
我试过 jtree.setModel(tree.getModel()) 这似乎根本不起作用。
当您更改某些内容时TreeModel
(通过调整ShipmentItem
对象来完成),您必须确保TreeModel
触发正确的事件。这将导致JTree
重新绘制正确的部分。例如,如果您从 开始DefaultTreeModel
,您的扩展程序应该nodeChanged
在节点的对象发生更改时调用。
注意:您不必调整toString
正确渲染的方法。您正在寻找的概念是TreeCellRenderer
(查看Swing 教程以获取更多信息)