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