我正在研究NetBeans Platform 6.7
我有一个简单的BeanTreeView来显示一些节点。它们都以普通文本开头,我希望将其中一些更改为粗体和/或下划线,以响应软件中的事件。
麻烦的是,我看不到如何让树刷新节点显示。
我可以调用AbstractNode.setName(),它允许我更改名称,但不支持粗体标记。
我可以将getHtmlDisplayName()的结果更改为包含粗体标记。 但是我必须重新绘制节点 - 我该怎么做?
答案 0 :(得分:2)
您可以在AbstractNode中进行此操作(在PropertyChangeListener
或类似的内容中获取更改)
fireDisplayNameChange("", getDisplayName());
这将绕过检查以查看显示名称是否已更改!
只需确保您有代码来更改getHtmlDisplayName()
方法
答案 1 :(得分:0)
如果我停止缓存 AbstractNode ,我可以解决我的问题;当我想更新 AbstractNode 实例的 HtmlDisplayName()时,我必须构建一个替换节点。
似乎无法简单地更新现有节点并刷新它。
答案 2 :(得分:0)
好。 看起来我很厚。
我可以在Node上调用 Node.setDisplayName(),并且会自动调用 Node.getHtmlDisplayName() - 只要我有实际上改变了 DisplayName 字符串 - 如果我使用与之前相同的字符串调用 setDisplayName(),则没有任何反应。