我有一个带有自定义TreeModel(一个实现TreeModel的类)的JTree。 除了一个奇怪的事情之外,树正常工作:当我单击节点或使用箭头键移动时,树不会重新绘制所选节点(新选择的节点周围没有边框),之前的选择消失。节点也被绘制为正常高度的两倍。首先,我认为树没有响应用户输入,后来我发现在调整窗口大小(导致重绘)后,树正确反映了更改。
这种行为可能是什么原因?
答案 0 :(得分:0)
对不起,这个问题已经解决了。 问题出现在TreeModel中:将一个子项添加到父项导致添加子项以及父项本身,因此JTree重新绘制了问题。我没有错误地实现添加子节点的方法。
在TreeModel的documentation中有一个揭示通知:“......如果不满足这个条件,可能会导致绘画问题和其他奇怪之处。”