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

How to make JTree to only display strings and not a file structure

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

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

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

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

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


编辑:

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

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

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

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