我目前正在做一个客户端-服务器项目,客户端向服务器发送请求,服务器根据来自客户端的信息运行数据库语句。由于输出没有静态长度,我将所有数据添加到 ArrayList<String>
并将其发送回客户端。
客户端请求的数据具有一定的层次结构,因此也可以使用 XML 文件显示它(但是这里需要输出到 GUI 而不是创建文件)。我想到了几种显示方式。一种方法是使用一个简单的文本区域,但是使用它时,我需要自己应用布局,并且无法选择可以展开和折叠某些项目的折叠选项。
另一种可能性当然是使用简单的 JList,但是我在 Stackoverflow 上读到,使用 JList 来显示分层的东西比使用 JTree 更容易。
当我决定尝试实现 JTree 时,我还发现了 Genealogy.java Oracle 在其 documentation of JTree 中提供的文件.如本文档的第一个示例所示,始终显示文件结构,因此也显示文件结构类型的表示(使用文件夹和文件符号)。与此相反,Genealogy.java 仅显示人员姓名,因此我尝试将 Genealogy.java 的实现适应我的情况,但我完全不知道如何执行此操作,因为我什至不知道这些符号来自何处从哪里我可能会禁用它们,也没有真正得到我需要实现的一些方法的作用。
因为我目前真的不知道如何可能实现我真的需要一些详细的帮助(只告诉我想出我自己的 JTree 或 TreeNode 的实现在这一点上并没有真正帮助我)。是否有任何更简单的方法或者是否需要实现前面提到的任何接口(interface)?如果是,将如何完成?
编辑:
这是它当前的显示方式(示例取自 Oracle 文档,在字符串前面显示文件夹和文件符号):
这就是我希望它显示的方式(也是来自文档,这次只显示一个字符串作为节点):
最佳答案
答案几乎肯定会通过用于树节点的TreeCellRenderer
(的图标)找到。查看File Browser GUI提示。它展示了如何在 FileTreeCellRenderer
中设置图标。不可否认,这里的重点几乎与那里的完全相反,但它仍然归结为同一件事 - 图标。
涵盖它的教程部分是 How to Use Trees: Customizing a Tree's Display .
关于java - 如何使 JTree 只显示字符串而不显示文件结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57107460/