在我的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会提供有列的错觉)吗?或者有更好的方法吗?
答案 0 :(得分:1)
一种方法是使用JTable
并实现TableCellEditor
接口,如example中所述。您可以为每种PopupDialog
创建不同的CommandEditor
。有关其他示例,请参阅How to Use Tables。
答案 1 :(得分:1)
您似乎只需要一列CommandEditors,因此JList
如果支持像JTable
那样的单元格编辑器,它会更容易使用。
如果你有超越摇摆的冒险,Apache Pivot's list支持单元格编辑器。我没有亲自使用它,但我看到了很好的评论。