JList的自定义组件,而不仅仅是字符串

mlu*_*udd 5 java swing

我一直在尝试梳理我的Java知识,而且我一直在构建一个小的GUI程序,而且我遇到了一些问题.

基本上,我有一个JList我正在填充来自我的一个类中的对象的字符串,这些类实现AbstractListModel了我们可以称之为我的ItemList类.它包含一个实现ArrayList类型的对象.ItemSerializable

但是,我想要做的是,而不是填充我JList与一群字符串我想用某种字符串+来填充它JTextField的组合,所以我可以看到每一个属性Item对象,同时还能够更新另一个属性通过改变JTextField.

现在,我正在寻找的是这样做的最简单的方式,和我假设有一个(相对)简单的方法来做到这一点,因为它是这样一个平常的事想在GUI应用程序做的(虽然我不会不要把它放在Java和Swing之上,以使它变得复杂和复杂).

那么,这样做的正确方法是什么?

And*_*son 10

无需使用String对象.代替:

  • Item对象放在JList.
  • 添加ListCellRenderer到列表中,以Item最友好的方式显示对象.
  • 当用户选择一个项目,显示了在细节不同的地方(我想一个面板,标签和文本字段,2列和两行-每个属性,也许一个按钮Save)

编辑控件最好封装在一个面板中,然后可以在不需要时隐藏,并放在各种各样的地方,例如

  • 列表下方
  • 在GUI的主要部分
  • 显示在a JOptionPane或a中(模态与否)JDialog

下面是将"查看/编辑面板"(文件详细信息)放在选择组件(表格)下面的示例.