首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么nodeChanged调用不触发给定节点的单元呈现器以在Jtree中执行?

为什么nodeChanged调用不触发给定节点的单元呈现器以在Jtree中执行?
EN

Stack Overflow用户
提问于 2013-12-04 13:59:46
回答 2查看 118关注 0票数 0

我有一个应用程序,其中JTree节点包含JProgressBars。我使用这样的函数来更新给定节点的UI:

代码语言:javascript
代码运行次数:0
运行
复制
public void setProgressForNode(DefaultMutableTreeNode node, int progressValue)
{
    ((ExecutionItem) node.getUserObject()).setProgressValue(progressValue);
    originalModel.nodeChanged(node);
}

每当保存进度条的节点被更新为给定值时,都会调用此函数。nodeChanged(node)应该更新UI,但它没有。有人有想法吗?我可以看到的是,在调用nodeChanged(node)之后,不会为给定的节点调用呈现程序。如果我在“执行”过程中连续单击树中的节点,就会调用呈现器,以便进度条更新。

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2013-12-04 14:06:00

如果我没有弄错,在我的经验中,在C#和Java的大多数对象中都有一个无效,这就是要使用的对象,那么您想要重绘一个控件/对象,比如procesbars。

如果这是可能的,那可能是这样的:

代码语言:javascript
代码运行次数:0
运行
复制
Node.Invalidate()

这应该会迫使用户界面重新绘制,不管它对你有什么好处。

票数 0
EN

Stack Overflow用户

发布于 2013-12-04 14:11:39

试着使用下面的方法;

代码语言:javascript
代码运行次数:0
运行
复制
DefaultMutableTreeNode parent = (DefaultMutableTreeNode) node.getParent();
originalModel.nodeStructureChanged(parent);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20377330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档