问题标签 [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 投票
2 回答
782 浏览

java - 来自枚举值的 Java 树节点

我用来自枚举值的节点填充我的 JTree。但节点以全部大写文本显示。这是不可取的,因为我希望节点以小写形式显示。

例子:

我努力了:

节点显示为:MONDAY 但我希望它显示为:Monday

基于文本的图形示例:

不是

如何让我的树节点与枚举值关联,但它在树上的文本使用全名字符串?或者换句话说,如何设置树节点用户对象,但名称不同?

*注意 - 一个简单的解决方法是违反约定并将我的值命名为我希望它们在树中显示的方式,而不是全部大写。

0 投票
1 回答
844 浏览

java - 根据存储在节点中的数据突出显示 jtree 中的特定节点

我有一个显示 jTree 的应用程序。树中的每个节点都有一个名为的布尔字段flagged,指示它是否需要用户注意。

如果该字段是true,那么我希望它以红色突出显示,否则不突出显示。

有什么好方法可以做到这一点?我应该延长DefaultTreeCellRenderer吗?实现我自己的自定义TreeCellRenderer?还有什么方法?

0 投票
1 回答
752 浏览

java - jtree中的jtable具有不同的行数

我正在尝试创建一个由 JTables 组成的 JTree。到目前为止,我成功地使用 Jtables 创建了一个 Jtree。但是,我无法更改特定树节点的表的行数。每当我尝试调整行数时,所有树节点的行数都会发生变化。

我在以下链接中使用了代码:

Jtable 作为 Jtree 节点

我在 Trashgod 的推荐下编写了以下代码;但它没有用;你能不能给一些工作代码..

例子 :

|节点1|

|节点2|

|节点3|

0 投票
2 回答
725 浏览

java - DefaultTreeCellRenderer 未按预期工作

我疯了,因为我不明白我做错了什么。我需要我的树的每个节点都有一个不同的图标,就好像它是正确的、不正确的或需要更新一样。我看到了 Oracle 文档和很多网页(包括 Stackoverflow),但我的代码只显示了所有具有相同图标的节点。如果我做错了什么,我很抱歉,这是我的第一篇文章:>

显示: 我无法显示,因为我没有声望>.<

想象一棵树,并想象它总是显示带有gifNew图标的 leafIcon。似乎只有状态会监听最后一个节点。

这是代码(所有变量均已正确创建,像 gifNew 之类的图标也是如此):

图标:

称呼:

渲染器:

0 投票
2 回答
1764 浏览

java - JTree 节点不会在视觉上被选中

不知何故,我无法为我的 JTree 节点启用“选择突出显示”。我正在我的项目中使用自定义单元格渲染器(这很可能导致此问题)。

这是完整的渲染器类代码:

我在 stackoverflow 和其他网站上搜索了可能的解决方案,找到了“setOpaque”方法——根本没有改变。

我确信它必须与自定义渲染器有关,因为突出显示在我的另一个项目中工作得非常好。

编辑:

删除 JLabel 并添加这些行对我有用:

0 投票
1 回答
1294 浏览

java - 内容更改时,JTree 中的 JLabel 不会调整大小

我有一个行为如下的 JTree:

  • 根有一个类型为的用户对象RootObject;它使用纯文本标签,并且在树的整个生命周期内都是静态的。
  • 每个孩子都有一个类型为 的用户对象ChildObject,它可能处于以下三种状态之一:未运行、正在运行或已完成。
  • ChildObject未运行时,它是一个明文标签。
  • 运行时ChildObject,它使用图标资源并切换到 HTML 呈现,因此文本为斜体。
  • 完成ChildObject后,它使用不同的图标资源并使用 HTML 呈现以粗体显示文本。

目前,我的代码如下所示:

在大多数情况下,这很好。使用纯文本的标签可以很好地呈现初始树。问题是一旦ChildObject实例开始改变状态,JLabels 就会更新以使用 HTML 呈现,但不会调整大小以补偿文本或图标。例如:

初始状态:http:
//imageshack.us/a/img14/3636/psxi.png

进行中:http:
//imageshack.us/a/img36/7426/bl8.png

完成:http:
//imageshack.us/a/img12/4117/u34l.png

有什么想法我哪里出错了吗?提前致谢!

0 投票
1 回答
1517 浏览

java - Swing JTree自定义Render如何从自定义Editor中获取价值?

我尝试使用自定义 TreeRenderer 制作 JTree

并使用自定义编辑器

其中 getTreeCellEditorComponent 将面板返回为 getTreeCellEditorComponent 但使用 JComboBox 从数据库填充项目。渲染和编辑器工作得很好我可以点击字段和组合框显示来自 db 的值。

但它没有保存在渲染 textArea 我的意思是在渲染中我有面板:
JLabel (FieldName)
JTextArea (FieldValue)

当我点击 JTextArea 我有我的编辑器,它有:
JLabel (FieldName)
JComboBox(FieldValues which I have paid from db)

但是当我从 Edit ComboBox 中选择某些内容时,它不会保存在 Render TextArea 中所以问题是这些东西应该如何工作?

渲染组件如何从 Edit 组件中获取价值?

0 投票
1 回答
51 浏览

java - 复合 JTree 节点允许事件传递到下面的对象

复合 JTree 节点允许事件传递到下面的对象

我浏览了@Jakub Zaverka 的答案,这很清楚。但我不明白的是创建树节点的代码(JTree、食物、运动、颜色)在哪里。有人可以解释如何创建节点。

如果我创建一个具有 JButton 和 JLabel 作为字段的扩展 JPanel 的节点,我可以使用 JTree 的构造函数设置节点,该构造函数将由相同的自定义渲染器和编辑器渲染和编辑。

0 投票
1 回答
270 浏览

java - 构建 JTree 时,它​​显示每个节点的路径,有什么方法可以显示文件/文件夹名称?

我已经设法收集了一个从 user.dir 加载文件和文件夹的功能 JTree,但是每个节点都以绝对路径命名,如果您不喜欢远远超出边界的节点名称,这有点麻烦。所以我想知道是否有一个简单的解决方案可以将节点名称缩短为父目录和文件/文件夹名称?

目前我的节点如下所示:

我正在寻找的是更多的行:

如果这是即使是初学者也应该因为不理解而感到羞耻的事情,我期待一些众所周知的打屁股。但如果这是一个体面的问题,请随意扭曲你的面条。我尝试研究 Java 的外观和感觉,但结果证明是一个错误。

我不确定是否需要写下我的代码。但如果它有任何用处,我已经使用了一个文件数组和 .list() 来获取文件,然后将它们插入到带有“DefaultMutableTreeNode”和“DefaultTreeModel”的 JTree 中。

0 投票
2 回答
26083 浏览

java - 为Jtree中的每个节点设置图标

我想为我的 JTree 中的每个节点设置一个不同的图标,实际上我正在从数据库中加载每个节点,使用“while”,我将每个图标设置为根、叶或父级。像这样:

我所有的声明都是全局的:

这是我设置节点的代码:

makeNode 方法是这样的:

用我的节点填充树模型后,我将模型设置为我的 JTree:

但问题是。当我尝试设置图标时。我创建了一个名为 myTreeRenderer 的子类,并使用它:

但它没有按照我的意愿设置图标,子类是:

如何在不使用他的名字的情况下为每个节点设置图标?子类的代码按原样设置所有节点都具有相同的图标,每次我在 jtree 中选择一个节点时,getTreeCellRendererComponent 都会运行,我不想要这个。