0

我正在使用 NetBeans 平台 6.7

我有一个简单的 BeanTreeView 来显示一些节点。它们都以普通文本开头,我希望将其中一些更改为粗体和/或下划线,以响应软件中的事件。

麻烦的是,我看不到如何让树刷新节点显示。

我可以调用 AbstractNode.setName() 这将允许我更改名称但不支持粗体标签。

我可以更改 getHtmlDisplayName() 的结果以包含粗体标签。但是我必须让节点重新绘制 - 我该怎么做?

4

3 回答 3

2

您可以在 AbstractNode 中执行此操作(在 aPropertyChangeListener或类似的情况下进行更改)

fireDisplayNameChange("", getDisplayName());

这将绕过检查以查看显示名称是否已更改!只需确保您有代码来更改getHtmlDisplayName()方法中的 HTML

于 2011-08-25T04:53:36.420 回答
0

如果我停止缓存AbstractNode ,我可以解决我的问题;当我想更新AbstractNode实例的HtmlDisplayName()时,我必须构造一个替换节点。

似乎不可能简单地更新现有节点并刷新它。

于 2010-06-23T14:01:35.990 回答
0

好的。看来我变厚了。

我可以在节点上调用Node.setDisplayName() ,结果将自动调用Node.getHtmlDisplayName() - 只要我实际更改了DisplayName字符串 - 如果我使用与相同的字符串调用setDisplayName()之前,然后什么都没有发生。

于 2010-06-24T14:17:44.253 回答