我有一个存储“ShipmentItem”的JTree,它们上面的.toString()显示数量,然后显示ShipmentItem的名称。在某些时候,我一次更改多个项目的数量,但是在我实际点击该特定树节点之前,toString()不会刷新。我不想将JTree扩展为使用'Property Fired'我只是希望能够刷新它以便它显示更新。
我尝试了jtree.setModel(tree.getModel()),这似乎根本不起作用。
答案 0 :(得分:3)
如果您将某些内容更改为TreeModel
(通过调整ShipmentItem
个对象),则必须确保TreeModel
触发正确的事件。这将导致JTree
重绘正确的部分。例如,如果您从DefaultTreeModel
开始,则当节点的对象发生更改时,您的扩展程序应调用nodeChanged
。
注意:您无需调整toString
方法以进行正确渲染。您要查找的概念是TreeCellRenderer
(有关详情,请查看Swing tutorial)