我有一个JTree
,其中的孩子是我的班级继承自DefaultMutableTreeNode
的实例。
一开始,树有10个节点,有两个级别。然后我在我的班级中使用add()
方法将子项添加到某些节点中。然后我重新加载我的树模型:
tree.setModel(root) // root is an instance of my class.
孩子们被添加,一切正常。但是当我想设置选择路径(使用tree.setSelectionPath(path)
扩展添加的子项)时会出现问题。然后大多数节点被截断,好像它们太长了(我看到类似节点的省略号)。
如何解决这个问题。评论setSelectionPath(path)
行并手动扩展节点后,一切正常。
答案 0 :(得分:0)
OpenJDK 11遇到同样的问题后,以下修复程序对我有用:
tree.expandPath(somePath);
tree.invalidate();
关键是invalidate()
告诉Swing必须再次布置组件。有关更多详细信息,请参见Difference between validate(), revalidate() and invalidate() in Swing GUI。