问题标签 [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.

0 投票
1 回答
2789 浏览

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,这将很有用)。

提前致谢!

0 投票
1 回答
70 浏览

tree - 在运行时调整 zk-treecol 的大小

我有一个应用程序,我应该能够在运行时重新调整树的列的宽度(因为我们可以重新调整电子表格中列的宽度。)因为我不想包装我的数据。可行吗。。?如果是的话,我们怎样才能做到这一点?提前致谢。

0 投票
1 回答
971 浏览

java - 更新渲染的树单元

这是我的申请。

在此处输入图像描述

我想要做的是这样当用户的详细信息被更新时,它在 JTree 中的节点也是如此。这可能吗; 即使已经创建了 JTree 及其呈现的单元格?

我需要一个更新渲染单元格的示例,即使它已经创建。

这是我的查看代码:

这是我的控制器代码:

这个想法是在对对象进行更改之后,我调用 repaintTree() 方法。现在查看代码后,我认为问题在于我正在更改对象详细信息而不是节点详细信息,但这只是一种预感。

请尽快回复,非常感谢。

0 投票
1 回答
344 浏览

treeview - TreeView 中的 TreeItem 选择宽度

我正在使用 JavaFX 8,目前正在做一些 GUI 开发。我的 TreeView 有点问题,需要您的帮助。

您知道是否可以在 TreeView 中仅选择标签而不是 TreeCell 的整个宽度?

我的意思是(Netbeans 示例):

良好的 TreeView 选择

代替 :

错误的 TreeView 选择

先感谢您。

0 投票
1 回答
520 浏览

java - 当我单击它时,树节点图标消失

在此处输入图像描述 /* 当我点击树节点时(EX:WEBLOGIC 被选中)节点图标消失,但其他图标(未选中)来了。请帮我解决这个问题。这是一个基于摇摆的程序 */

0 投票
2 回答
569 浏览

java - 根据自定义对象状态更改 JTree 图标

我有一个基于几个自定义类的 JTree。我想给几个节点一个特定的图标。因此我根据这个链接做了以下代码:Dynamically change icon of specific nodes in JTree

我的每个节点都是 JTreePanelNode(自定义类)的一个对象,它保存了一个特定的状态,可以通过 setState(String s) 设置并通过 getState() 获取。所以我想要的是这样的:

我怎样才能实现这样的目标?据我了解,渲染器使用 getTreeCellRendererComponent 遍历每个节点并应用我可以使用 setIcon 和几个 ifs() 选择的特定图标。但是我不能转换为 JTreePanelNode。有什么解决办法吗?谢谢 :)

0 投票
1 回答
613 浏览

java - 如何为 JTree 中的特定节点调用 DefaultTreeCellRenderer

我有一个自定义DefaultTreeCellRenderer的禁用 JTree 中的节点。

这是它的代码:

但我无法在我的代码中使用它。我不能有一个方法或什么东西在我需要的地方调用它。例如,当按下按钮时,或者当项目具有特定名称时。

这是一个示例,我的方法遍历模型并找到与给出者字符串匹配的节点。

这就是我设置CustomDefaultTreeCellRenderer树的方式:

这是我的步行方法的一个例子:

那么知道如何禁用特定节点吗?

0 投票
0 回答
436 浏览

java - 如何使 TreeCellRenderer 的 getTreeCellRendererComponent() 方法定期调用?

我正在开发一个 Swing 应用程序,我需要在其中定期刷新树。树中的每个节点代表在独立线程中运行的特定任务。每个节点都包含它执行的任务的复选框 + 状态指示器(由 JPanel 表示)。我编写了一个自定义 TreeCellRenderer 以更改组件外观。我正在我的渲染器中实现 javax.swing.tree.TreeCellRenderer 接口并覆盖它的以下方法。

我想让此方法每 1 秒调用一次,以便刷新每个节点执行的底层任务的状态。

有人可以告诉我如何每 1 秒调用一次 getTreeCellRendererComponent() 吗?应该从单独的线程触发哪个事件?我目前通过在包含 JTree 的 JPanel 上调用 updateUI() 方法来实现这一点,但这会阻止我的整个 UI,直到调用从 getTreeCellRendererComponent() 返回。

[更新]: 我正在使用 DefaultTreeSelectionModel,我不想在添加或删除新节点时更新 JTree,而是在与每个节点关联的任务完成时更新 JTree。当我单击 UI 中添加的“运行”按钮时,这些任务就会执行。按下运行按钮后,我想在添加到节点的 JPanel 中使用不同颜色更新每个节点。

0 投票
2 回答
235 浏览

java - JTree:TreeCellRenderer 未按预期执行

简而言之,我希望将树渲染为使第一级为粗体。

但是,这会使我的树中的所有节点变为粗体。怎么了?

0 投票
2 回答
3650 浏览

java - 如何动态设置Jtree节点图标

我想为分组和未分组的节点显示单独的图标。我创建了一个customTreeCellRender。下面给出了我的示例代码。在for循环中,奇数一个节点有一个图标,偶数有另一个。但不更改节点的图标。在我的应用程序中,填充来自 db 的树节点并根据某些条件进行分组。这是一个示例可运行代码。