1

我有一个存储“ShipmentItem”的 JTree,它们上的 .toString() 显示数量,然后是 ShipmentItem 的名称。在某些时候,我一次更改了多个项目的数量,但 toString() 在我实际单击该特定树节点之前不会刷新。我不想扩展 JTree 以使用“Property Fired”,我只想能够刷新它以显示更新。

我试过 jtree.setModel(tree.getModel()) 这似乎根本不起作用。

4

1 回答 1

3

当您更改某些内容时TreeModel(通过调整ShipmentItem对象来完成),您必须确保TreeModel触发正确的事件。这将导致JTree重新绘制正确的部分。例如,如果您从 开始DefaultTreeModel,您的扩展程序应该nodeChanged在节点的对象发生更改时调用。

注意:您不必调整toString正确渲染的方法。您正在寻找的概念是TreeCellRenderer(查看Swing 教程以获取更多信息)

于 2012-04-17T14:50:42.540 回答