问题标签 [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 回答
341 浏览

java - JTree 进度条在选择时显示为空白

我在使用 JTree 时遇到问题,其中项目在初始选择时空白,并且在取消选择之前不反映进度条。参考.gif:

在此处输入图像描述

代码:

我对 Java 还是很陌生,所以我不确定我哪里出了问题。任何和所有的帮助将不胜感激。

编辑添加指向显示问题的可行程序的链接。它还不是最小的,但我正在创建一个。 程序示例

0 投票
0 回答
290 浏览

java - 动态更改 JTree 节点图标

我已经实现了一个JTree使用DefaultTreeModel。我将消息类型对象存储在树中,我最初根据direction消息的变量值设置节点图标。我可以使用下面的代码成功地做到这一点。

动态地,我想让用户选择节点并更改其方向,以便更改节点图标。我正在通过以下代码进行操作。

这是我的CustomMessageNode课。

一旦我通过选择节点改变方向,图标就会改变。但是,每当我单击其他节点或 JFrame 中的某个位置时,就会出现问题,该图标会不断改变方向。我调试并确保toggleDirection() 当我单击节点并说改变方向时该函数只被调用一次。

请让我知道为什么会发生这种情况,是否有更好的方法来做到这一点。当用户更改一次节点图标时,节点图标不断变化的原因是什么。

0 投票
1 回答
386 浏览

java - 将子节点添加到 SelectionPaths[]

我有一棵显示网络设备的树。过滤树,以便按位置和设备类型显示设备。例如,节点“Office”将具有子节点“计算机”和“打印机”,每个节点下都有设备。

当我选择位置节点时,我想选择它下面的所有节点并将其添加到我的树的 selectionPaths[] 中,以便它们都被突出显示。下面是我的代码,但我不知道如何让它工作。

0 投票
1 回答
921 浏览

java - 编辑树单元格时,Java JTree 自定义图标变回默认图标

在我的代码中,我自定义 aDefaultTreeCellRenderer给我的节点一个自定义图标。

在我使我的树可编辑以便用户可以编辑节点标识符之前,所有这些工作都很好。现在图标在编辑节点时切换回默认值。似乎编辑树单元格渲染器与我编写的不一样。有谁知道如何解决这一问题?

0 投票
0 回答
44 浏览

java - 如何减少Jtree中节点的背景颜色长度?

基本上是在为 Jtree 中的选定组件/节点设置背景颜色。但问题是背景颜色长度超过了节点文本的长度。那么有人能告诉我如何控制背景颜色的长度吗?我希望根据节点的文本长度调整任何节点的背景颜色。

0 投票
1 回答
33 浏览

java - 如何修改 javax.swing.TreeCellRenderer 以描边单元格中的文本

有谁知道javax.swing.TreeCellRenderer应该如何修改 a 以便在单元格中描边文本?

0 投票
0 回答
19 浏览

java - 另一个动态自定义 Jtree 图标问题

我试图创建一个Jtree使用多个单独的图标(每个不同的图标node

我尝试了多种解决方案,但其中任何一个都确实完成了工作。很多只是改变“ leaf,,isClosed等”options

我希望渲染器将图标应用到指定的节点(我用 if 得到的),但它只是将选择的最后一个图标应用到应该已经修改的所有先前节点。其他所有解决方案都是这样结束的:/。谢谢你的时间

0 投票
1 回答
195 浏览

java - TreeCellRenderer 中的标签宽度不正确

我有JTree一个定制的TreeCellRenderer
此渲染器是一个包含复选框和标签的面板。
虽然每个节点的标签文本是固定的(在 的 UserObject 中指定DefaultMutableTreeNode),但该文本可能是粗体,也可能不是粗体。这取决于复选框的状态。
取消选中复选框时,标签文本不再是粗体,但其宽度保持不变(太宽)。
类似地,选中复选框时,文本报告为粗体但标签不放大。
这会导致文本被截断。

现实生活中的情况要复杂一些,但下面是一个完整的例子。
为了重现问题:

  • 通过单击文本选择第一个节点
  • 按空格键取消选中复选框。文本不是粗体,但标签太大。
  • 单击第一个节点上的展开按钮。标签宽度调整
  • 按空格键选择组合框。文本变为粗体但被截断。

我试图插入几个对 , 等的调用invalidaterepaint但没有解决问题。
默认外观和系统 (Windows) 外观中都会出现此问题。

这个类实现了我的树:

更新
getTreeCellRendererComponent,我尝试获得首选尺寸。
他们看起来不错。选中复选框时,标签和面板本身的首选大小都会增加。取消选中复选框时,它们会减少。

0 投票
1 回答
34 浏览

java - 我已经在 J​​ava Swing TreeNode 中有一个复选框。但是我如何使它成为可检查的呢?

注意:我不是在问如何在 JTree 中放置一个复选框——以前,一个困惑的版主认为这就是我要问的。我已经在树中有复选框。我在问什么类或方法控制复选框的可检查性......

为了在 Tree 节点中获得一个复选框,我读到您必须制作一个复选框渲染器,所以我做了一个:

这将在树节点中创建复选框。但是由于某种原因,这使得复选框无法选中,当我单击它时没有任何反应。为什么在渲染器中创建复选框会“破坏”复选框?如何使复选框可选中(即当我单击复选框时它会被选中,而当我再次单击它时它会被取消选中)?