gpt4 book ai didi

java - 显示对象的图形

转载 作者:太空宇宙 更新时间:2023-11-04 07:23:09 25 4
gpt4 key购买 nike

我想显示对象中的所有字段以及该字段的所有字段等。所以基本上是对象的“图形”或层次结构。

JTree 就足够了,但是为了在 Java Swing 中显示对象的图形,还有其他人可能推荐的吗?

为了澄清,我想以编程方式执行此操作,并且我想使用任何 java 对象执行此操作。

这个问题与以下内容几乎相同:

How to display tree hierarchy in Java?

最佳答案

您正在寻找的是将对象图序列化为可以在 JTree 中显示的数据结构。这是一项非常复杂的任务,涉及大量工作。要正确执行此操作,您需要执行以下操作(这只是一个摘要):

  • 确定您将使用的数据结构(可能是 TreeNode 的实现或等效的东西)来表示对象和字段

  • 使用反射递归地探索对象图。对于每个类,探索包括完整继承链中的字段;然后,如果每个字段不是原始类型,则对其类执行相同的操作;还要确保对每个非公共(public)字段调用 setAccessible(true) 以实际访问它

  • 处理对象引用循环,您不希望永远循环并以 StackOverflowError 或无限树结束。您需要找到一种方法将对对象的引用链接到 JTree 中的实际内容。这是我发现 IdentityHashMap 有用且理想的案例之一。

我的建议是不要从头开始。您可以从各种来源中找到灵感,例如:java.io.ObjectOutputStream 及其附带类的来源,或其他开源序列化框架,例如 XStreamKryo或其他一些。

我个人不久前已经出于特定目的实现了这样一个框架,这就是为什么我知道它可能会带来的难以忍受的痛苦。您可以找到来源here (从 JPPFObjectOutputStream 类开始)。

关于java - 显示对象的图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18994678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com