java - 在不扩展 JTree 的情况下,是否可以在更改树中的对象后强制更新模型?

标签 java swing user-interface jtree

我有一个存储“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/

相关文章:

java - 使用 GridBagLayout 定位

java - spring mvc 路径匹配匹配策略

java - 从多字符串数组中获取字符

java - JTable右键复制/粘贴菜单一键复制单元格数据

java - 更改 Swing JTable 单元格颜色

objective-c - iOS - 如何将 UI 对象重置为默认样式

java - 如何不丢弃通过 Integer.parseInt 解析的数字开头的 0

java - 如何计算1个月前的毫秒数?

java - 未显示内部类 Intellij IDEA 错误

java - 如何将Jmenubar添加到mouseclick程序中?