草庐IT

treecellrenderer

全部标签

java - 渲染时更改 JTree 行高调整行为

我只想在选择节点时使用包含三个文本字段的自定义TreeCellRenderer,而在未选择节点时使用默认渲染器。问题是,尽管我为面板设置了适当的首选大小和最小大小,但JTree不会更新已编辑的行高。相反,当我使用与编辑器相同的面板时,它会正确呈现。谁能解释为什么会这样?是否有推荐的方法来实现类似于编辑的渲染调整大小行为?JTree是否提供了直接设置它的方法,或者是否有必要扩展JTree或(更糟糕的)L&F?注意:深入研究BasicTreeUI.startEditing(TreePathpath,MouseEventevent)方法后,我注意到以下代码行。他们似乎负责编辑调整大小:if(

java - JTree 节点标签经常变化但宽度被缓存

目前,我正在使用自定义TreeCellRenderer来处理我的JTree的标签和图标更改。当我需要更改几个节点上的文本时,问题就来了。TreeCellRenderer在显示新文本方面表现出色。但是,初始文本的宽度会被缓存并且不会更新。我试图通过覆盖TreeCellRenderer中的getPreferredSize来破解它,但由于我有html字符串,所以无法正常工作。我什至尝试解析标签并获取宽度,但它仍然不完美。我使用过SwingUtilities和FontMetrics。似乎使用树的支持DefaultTreeModel.nodeChanged(TreeNode)是更改节点的正确方法