java为什么nodeChanged调用不触发给定节点的cellrenderer在Jtree中执行?
我有一个应用程序,其中JTree节点包含jprogressbar。我使用这样的函数来更新给定节点的UI:
public void setProgressForNode(DefaultMutableTreeNode node, int progressValue)
{
((ExecutionItem) node.getUserObject()).setProgressValue(progressValue);
originalModel.nodeChanged(node);
}
每当保存progressbar的节点更新为给定值时,就会调用此函数nodeChanged(node)
应该更新UI,但它不会。有人知道吗?
我可以看到的是,在调用nodeChanged(node)
之后,没有为给定节点调用渲染器如果我在“执行”过程中连续单击树中的节点,将调用渲染器,以便progressbar更新
谢谢
# 1 楼答案
尝试使用下面的方法
# 2 楼答案
如果我没弄错的话,在C#和Java中的大多数对象中都有一个Invalidate 根据我的经验,这就是要使用的方法,然后你需要重新绘制一个控件/对象,比如procesbar
如果它是可张贴的,可能是这样的:
这将迫使用户界面重新绘制,不管它在做什么 祝你好运