如何嵌套复杂的Swing组件

时间:2010-09-19 04:51:29

标签: java swing

在我的Swing应用程序中,我有一个名为Command的POJO类。 Command有几个子类。大多数Command子类由2或3个字符串组成。但是其中一个Command子类中的数据具有完全不同的数据格式。

我还有一个名为CommandEditor的类,它创建用于查看和编辑各种Command子类的GUI。 CommandEditor创建一个包含水平Box的JPanel。对于包含2或3个字符串的Command子类,Box包含2或3个对应的JTextField。对于奇数子类,Box包含用于查看和编辑子类数据的相应小部件。

我能够组合一个包含一堆CommandEditor的表单,而且一切都很好。

但是现在我需要处理一个命令的ArrayList。 ArrayList中的所有命令都保证属于同一个子类,这意味着每个命令的相应CommandEditors看起来基本相同(具有相似的形状)

客户想要的东西看起来像是一个CommandEditors表。

最好的方法是什么?我可以将CommandEditor对象的Vector传递给JList(这样JList会将CommandEditors放入行中,而CommandEditors会提供有列的错觉)吗?或者有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

一种方法是使用JTable并实现TableCellEditor接口,如example中所述。您可以为每种PopupDialog创建不同的CommandEditor。有关其他示例,请参阅How to Use Tables

答案 1 :(得分:1)

您似乎只需要一列CommandEditors,因此JList如果支持像JTable那样的单元格编辑器,它会更容易使用。

如果你有超越摇摆的冒险,Apache Pivot's list支持单元格编辑器。我没有亲自使用它,但我看到了很好的评论。