问题标签 [treecellrenderer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 渲染时更改 JTree 行高调整大小行为
我想仅在选择节点时使用包含三个文本字段的自定义 TreeCellRenderer,而在未选择节点时使用默认渲染器。问题是尽管我为面板设置了适当的首选和最小尺寸,但 JTree 不会更新编辑的行高。相反,当我使用与编辑器相同的面板时,它会正确呈现。
有人可以解释为什么会这样吗?
是否有推荐的方法来实现类似于编辑的渲染调整大小行为?
JTree 是否提供了直接设置它的方法,或者是否需要扩展 JTree 或(更糟糕的)L&F?
注意:
深入研究该BasicTreeUI.startEditing(TreePath path, MouseEvent event)
方法后,我注意到以下代码行。他们似乎负责编辑调整大小:
这是一个SSCCE,显示了不同的编辑和渲染行为。
- 未选择节点时,将使用默认渲染器。
- 通过单击一个节点,选择该节点并使用面板渲染器。
- 通过在节点上单击两次,开始编辑并使用面板编辑器。
如您所见,面板仅在编辑期间正确呈现。
另外,如果这不是合适的地方,请原谅我,但我抓住机会问是否有一本推荐 Swing 最佳实践的好书?
Swing 的架构师是否在某处记录了他们基于 Swing 设计的推荐解决方案?(我知道我问的太多了)
是否至少有一本食谱包含类似 Kleopatra 在JTree TreeCellRenderer 中发现的建议的建议,提出了关于显示选择颜色:
或解释设计决策,例如让 CellEditorListener 只监听editingCanceled 和editingStopped,而不监听editingStarted(如果我想调整JTable 的单元格大小而不必覆盖JTable.editCellAt,这将很有用)。
提前致谢!
tree - 在运行时调整 zk-treecol 的大小
我有一个应用程序,我应该能够在运行时重新调整树的列的宽度(因为我们可以重新调整电子表格中列的宽度。)因为我不想包装我的数据。可行吗。。?如果是的话,我们怎样才能做到这一点?提前致谢。
java - 更新渲染的树单元
这是我的申请。
我想要做的是这样当用户的详细信息被更新时,它在 JTree 中的节点也是如此。这可能吗; 即使已经创建了 JTree 及其呈现的单元格?
我需要一个更新渲染单元格的示例,即使它已经创建。
这是我的查看代码:
这是我的控制器代码:
这个想法是在对对象进行更改之后,我调用 repaintTree() 方法。现在查看代码后,我认为问题在于我正在更改对象详细信息而不是节点详细信息,但这只是一种预感。
请尽快回复,非常感谢。
treeview - TreeView 中的 TreeItem 选择宽度
我正在使用 JavaFX 8,目前正在做一些 GUI 开发。我的 TreeView 有点问题,需要您的帮助。
您知道是否可以在 TreeView 中仅选择标签而不是 TreeCell 的整个宽度?
我的意思是(Netbeans 示例):
代替 :
先感谢您。
java - 当我单击它时,树节点图标消失
/* 当我点击树节点时(EX:WEBLOGIC 被选中)节点图标消失,但其他图标(未选中)来了。请帮我解决这个问题。这是一个基于摇摆的程序 */
java - 根据自定义对象状态更改 JTree 图标
我有一个基于几个自定义类的 JTree。我想给几个节点一个特定的图标。因此我根据这个链接做了以下代码:Dynamically change icon of specific nodes in JTree
我的每个节点都是 JTreePanelNode(自定义类)的一个对象,它保存了一个特定的状态,可以通过 setState(String s) 设置并通过 getState() 获取。所以我想要的是这样的:
我怎样才能实现这样的目标?据我了解,渲染器使用 getTreeCellRendererComponent 遍历每个节点并应用我可以使用 setIcon 和几个 ifs() 选择的特定图标。但是我不能转换为 JTreePanelNode。有什么解决办法吗?谢谢 :)
java - 如何为 JTree 中的特定节点调用 DefaultTreeCellRenderer
我有一个自定义DefaultTreeCellRenderer
的禁用 JTree 中的节点。
这是它的代码:
但我无法在我的代码中使用它。我不能有一个方法或什么东西在我需要的地方调用它。例如,当按下按钮时,或者当项目具有特定名称时。
这是一个示例,我的方法遍历模型并找到与给出者字符串匹配的节点。
这就是我设置CustomDefaultTreeCellRenderer
树的方式:
这是我的步行方法的一个例子:
那么知道如何禁用特定节点吗?
java - 如何使 TreeCellRenderer 的 getTreeCellRendererComponent() 方法定期调用?
我正在开发一个 Swing 应用程序,我需要在其中定期刷新树。树中的每个节点代表在独立线程中运行的特定任务。每个节点都包含它执行的任务的复选框 + 状态指示器(由 JPanel 表示)。我编写了一个自定义 TreeCellRenderer 以更改组件外观。我正在我的渲染器中实现 javax.swing.tree.TreeCellRenderer 接口并覆盖它的以下方法。
我想让此方法每 1 秒调用一次,以便刷新每个节点执行的底层任务的状态。
有人可以告诉我如何每 1 秒调用一次 getTreeCellRendererComponent() 吗?应该从单独的线程触发哪个事件?我目前通过在包含 JTree 的 JPanel 上调用 updateUI() 方法来实现这一点,但这会阻止我的整个 UI,直到调用从 getTreeCellRendererComponent() 返回。
[更新]: 我正在使用 DefaultTreeSelectionModel,我不想在添加或删除新节点时更新 JTree,而是在与每个节点关联的任务完成时更新 JTree。当我单击 UI 中添加的“运行”按钮时,这些任务就会执行。按下运行按钮后,我想在添加到节点的 JPanel 中使用不同颜色更新每个节点。
java - JTree:TreeCellRenderer 未按预期执行
简而言之,我希望将树渲染为使第一级为粗体。
但是,这会使我的树中的所有节点变为粗体。怎么了?
java - 如何动态设置Jtree节点图标
我想为分组和未分组的节点显示单独的图标。我创建了一个customTreeCellRender。下面给出了我的示例代码。在for循环中,奇数一个节点有一个图标,偶数有另一个。但不更改节点的图标。在我的应用程序中,填充来自 db 的树节点并根据某些条件进行分组。这是一个示例可运行代码。