问题标签 [jtree]

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 回答
13234 浏览

java - 动态更改 JTree 的节点图像

我正在使用 CustomCellRenderer 来显示 JTree 的节点以显示带有节点的图像,如下所示:-

我的要求是在某些外部操作上更改节点的图像。我正在尝试重新加载 JTree 的模型,但它不起作用,如下所示:-

我哪里做错了??????

0 投票
1 回答
3822 浏览

java - JTree 节点标签经常更改但宽度被缓存

目前,我正在使用自定义 TreeCellRenderer 来处理 JTree 的标签和图标更改。当我需要更改几个节点上的文本时,问题就来了。TreeCellRenderer 在显示新文本时效果很好。但是,初始文本的宽度会被缓存并且不会更新。我试图通过覆盖 TreeCellRenderer 中的 getPreferredSize 来破解它,但由于我有 html 字符串,因此无法正常工作。我什至尝试解析标签并获取宽度,但它仍然不完美。我使用过 SwingUtilities 和 FontMetrics。

似乎使用树的支持 DefaultTreeModel.nodeChanged(TreeNode) 是更改节点的正确方法。但是,我需要有一个额外的数据结构来处理访问需要更改的节点。就个人而言,我只想更改需要更改的节点。但是,这将需要另一个数据结构来查找所有需要更新的节点。在这种情况下,围绕支持 JLabel 的大小缓存的最佳方法是什么?

0 投票
1 回答
447 浏览

java - Java:使用延迟删除从 JTree 中剪切项目

我已经在我的 JTree 上实现了 Drag'n'Drop 和 CCP(我已经创建了我的 Transferable 和 TransferHandler 类)。
默认情况下,剪切操作(CTRL-X 或 SHIFT+DELETE 键)从 JTree(JTreeModel)中删除项目,但我只想用灰色标记它并仅在粘贴操作后将其删除。
如何进行剪切操作以避免删除项目?

我不知道 swing DnD 的所有魔力,但看起来 Cut 动作是在 TransferHandler.getCutAction() 中实现的

0 投票
2 回答
3409 浏览

java - java swing - 为我的 JTree 节点添加颜色

我创建了一个以下渲染器,它使用复选框渲染 JTree,我想向不同的节点添加不同的颜色和图标。我该怎么做?请帮我。先感谢您。

}

0 投票
3 回答
740 浏览

swing - java swing中的JTree组件

如何更改JTreeSwing 组件中节点和根的图标?

0 投票
2 回答
4419 浏览

java - 可以在 JTree 中设置颜色吗?

我创建了一棵树,但我不知道为其设置颜色。

可以在 JTree 中设置颜色吗?

0 投票
1 回答
1061 浏览

java - 自定义 Java JTree 实现

有 2 个JTree:JTree1JTree2. 请注意,节点(国家、城市、颜色、蓝色...)都将实现为JCheckboxes,以便用户可以通过选择相应的复选框为每个城市或整个国家选择特定的颜色。

问题:

Q1。我希望每个国家或城市都可以选择自己的颜色。意味着如果用户想要city1.1蓝色和紫色以及city2.1红色,那么他首先必须选择city1.1复选框,然后选择蓝色和紫色,然后当他选择时city2.1,蓝色和紫色复选框会自动取消选中,这样用户可以选择颜色city2.1。但是当用户city1.1再次选择时,JTree2应该显示 city1.1 的选定颜色(蓝色和紫色)​​。

  • 因此,为此目的,JTree(其节点作为复选框)是正确的实现选项还是我应该使用其他选项JComponent

  • 如果 JTree 是一个正确的选项,那么我怎么能记住每个城市的颜色呢?

0 投票
2 回答
5532 浏览

swing - 对象的JTree?

如何实现动态 Jtree,它显示创建的类实例?

例如,我可以在我的应用程序中创建新的 Book(name)。在每本书中都可以是champions = ArrayList of Chapter。现在我怎么能从中做一个jtree?

0 投票
2 回答
1680 浏览

java - Java Swing - JTree 是否应该与 TreeModel 一起使用 - MVC 设计模式

我将JTree在我的 Java Swing 桌面应用程序中使用。我阅读MVC Design pattern并根据它,我们应该使用ModelSwing Components来将 a 的数据模型JComponent与其表示部分分开。

所以我的快速问题如下:

  • JTree(TreeModel newModel)

  • JTree(Object[] value)

  • JTree(TreeNode root)

  • JTree(Vector<?> value)

  • JTree(HashTable<?, ?> value)

在上述用于创建的选项中JTree

Q1。JTree(TreeModel newModel)应用MVC模式总是更好吗?

0 投票
1 回答
1416 浏览

java - 如何在字体更改时强制 JTree 中的 HTML JLabel 调整大小

我正在更新 Java Swing 应用程序以支持用户将应用程序的字体从正常大小切换到更大的大小(因此用户可以在运行时在两种大小之间切换)。我遇到的一个问题是 JTree 使用 HTML 作为树节点来为某些节点中的文本加下划线(HTML 只是嵌入在每个树节点的 JLabel 中)。关于节点的另一件事是它们是一个自定义组件,在每个 JLabel 前面添加一个 JCheckBox。

问题是一旦 JTree 可见,增加字体大小会导致节点(包含下划线文本)无法调整大小。这些节点的 HTML 似乎阻止了节点变宽,因此当字体更改时,文本会被截断。

我认为我的选择是:1)使用另一种方法使文本加下划线,因为从 JLabel 中删除 HTML 会导致它在字体大小更改时正确调整大小,或者 2)保持 HTML 格式并以某种方式强制 JTree/ JLabels 在字体大小更新时调整大小(可能通过触发属性更改事件?)。

当字体大小更新时,代码已经在父 JFrame 上调用 SwingUtilities.updateComponentTreeUI()。

编辑:此处解释了用于更改应用程序中字体的方法。

任何帮助将不胜感激。提前致谢!

-麦克风