使用Swing在GUI中显示类内容

时间:2011-02-10 15:54:50

标签: java user-interface swing data-binding reflection

我有一些带有字段和getter / setter的类,我想在Swing应用程序中显示该类的字段。

每个字段的名称应在Label中显示,并且应根据值的类型显示值,即。即String使用TextFieldList使用ComboBox等等。

一个难点是该类可以包含字段,这些字段也需要以这种方式处理。

是否有推荐/标准的方法?

我看了一下java.beans,但我不确定当这个类本身是Swing组件时是否主要使用它。

4 个答案:

答案 0 :(得分:4)

另一种选择是使用L2FProd中的PropertySheet组件。从你的描述,它应该完全符合你的要求。

它很长时间没有更新,但效果很好。

enter image description here

答案 1 :(得分:2)

我认为没有一种自动化的方法来实现这一目标。事实上,我认为你甚至可能错误地接近它。如果List包含除Strings之外的对象,例如,JComboBox如何解决这个问题呢?我建议只使用JTable并将名称放在第一列中,将值放在第二列中。

答案 2 :(得分:2)

您可以将@Annotations添加到要检查并在GUI中显示的字段中。在每种情况下,您都必须使用反射来访问并查找要显示的所有字段。我认为你必须在数据绑定中添加一个自定义逻辑,它会检查给定类的字段(可能使用@Display注释或类似的东西进行过滤)。

这应该很容易实现,你可以依赖POJO Bean定义并访问getter / setter上的所有字段,不要忘记缓存处理的类以避免类的循环依赖。

我希望这会有所帮助。

答案 3 :(得分:0)

ReflectionUI。它只需使用反射即可显示原始值对象和列表。它适用于getter / setter属性。