java - 如何使 JTree 只显示字符串而不显示文件结构

标签 java swing jtree treenode treemodel

我目前正在做一个客户端-服务器项目,客户端向服务器发送请求,服务器根据来自客户端的信息运行数据库语句。由于输出没有静态长度,我将所有数据添加到 ArrayList<String>并将其发送回客户端。

客户端请求的数据具有一定的层次结构,因此也可以使用 XML 文件显示它(但是这里需要输出到 GUI 而不是创建文件)。我想到了几种显示方式。一种方法是使用一个简单的文本区域,但是使用它时,我需要自己应用布局,并且无法选择可以展开和折叠某些项目的折叠选项。

另一种可能性当然是使用简单的 JList,但是我在 Stackoverflow 上读到,使用 JList 来显示分层的东西比使用 JTree 更容易。

当我决定尝试实现 JTree 时,我还发现了 Genealogy.java Oracle 在其 documentation of JTree 中提供的文件.如本文档的第一个示例所示,始终显示文件结构,因此也显示文件结构类型的表示(使用文件夹和文件符号)。与此相反,Genealogy.java 仅显示人员姓名,因此我尝试将 Genealogy.java 的实现适应我的情况,但我完全不知道如何执行此操作,因为我什至不知道这些符号来自何处从哪里我可能会禁用它们,也没有真正得到我需要实现的一些方法的作用。

因为我目前真的不知道如何可能实现我真的需要一些详细的帮助(只告诉我想出我自己的 JTree 或 TreeNode 的实现在这一点上并没有真正帮助我)。是否有任何更简单的方法或者是否需要实现前面提到的任何接口(interface)?如果是,将如何完成?


编辑:

这是它当前的显示方式(示例取自 Oracle 文档,在字符串前面显示文件夹和文件符号):

JTree displaying folders and file symbols

这就是我希望它显示的方式(也是来自文档,这次只显示一个字符串作为节点):

JTree only displaying strings

最佳答案

答案几乎肯定会通过用于树节点的TreeCellRenderer(的图标)找到。查看File Browser GUI提示。它展示了如何在 FileTreeCellRenderer 中设置图标。不可否认,这里的重点几乎与那里的完全相反,但它仍然归结为同一件事 - 图标。

涵盖它的教程部分是 How to Use Trees: Customizing a Tree's Display .

关于java - 如何使 JTree 只显示字符串而不显示文件结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57107460/

相关文章:

Java Swing JButton

java - 如何在JTree中以相同的长度显示所有String elementName?

Java:从字符串初始化一个类

java - 从右到左绘制图像

java - Apache Ant 在运行此脚本时被卡住

java - JTree:如何获取选定节点的路径

java - JTree:TreeNode 和 TreePath 之间缺少链接

java - MySQL 和 Eclipse 的连接问题

java - 如何从jsp访问java接口(interface)

java - 节项 : Get Section Name on Tap of Item