【问题标题】:Displaying class contents in a GUI with Swing使用 Swing 在 GUI 中显示类内容
【发布时间】:2011-06-24 23:14:47
【问题描述】:
我有一些带有字段和 getter/setter 的类,我想在 Swing 应用程序中显示类的字段。
每个字段的名称应显示在Label 中,并且应根据值的类型显示值,即。 e. String 使用 TextField,List 使用 ComboBox 等等。
一个困难是类可以包含字段,这些字段本身也需要这样处理。
有推荐/标准的方法吗?
我对@987654326@ 进行了一些研究,但我不确定它是否主要在类本身是 Swing 组件时使用。
【问题讨论】:
标签:
java
user-interface
swing
data-binding
reflection
【解决方案1】:
我认为没有一种自动化的方法可以实现这一点。事实上,我认为你甚至可能错误地接近它。例如,如果 List 包含 Strings 以外的对象,JComboBox 将如何解决这个问题?我建议只使用JTable 并将名称放在第一列,将值放在第二列。
【解决方案2】:
您可以将@Annotations 添加到您想要在 GUI 中检查和显示的字段中。在每种情况下,您都必须使用反射来访问和查找要显示的所有字段。我认为您必须向数据绑定添加自定义逻辑,以检查给定类的字段(可能使用@Display 注释或类似的东西进行过滤)。
这应该很容易实现,可以依赖POJO Bean的定义,通过getter/setter访问所有的字段,别忘了缓存处理过的类,避免类的循环依赖。
我希望这会有所帮助。
【解决方案3】:
另一个选择是使用来自L2FProd 的 PropertySheet 组件。根据您的描述,它应该完全符合您的要求。
好久没更新了,但是很好用。