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

时间:2012-07-29 00:09:34

标签: java swing

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

基本上,我有一个JList我正在使用来自我的一个类的对象中的字符串填充AbstractListModel,我们可以调用我的ItemList类。它包含ArrayList Item类型的对象,它们实现Serializable

但是,我想做的不是用一堆字符串填充我的JList,而是想用某种字符串+ JTextField组合填充它,这样我才能看到每个Item对象的一个​​属性,同时还可以通过更改JTextField来更新其他属性。

现在,我正在寻找的是最简单的方法,我假设有一种(相对)简单的方法来做到这一点,因为它在GUI应用程序中是如此常见的事情(虽然我不会把它放在Java和Swing之上,让它变得复杂和复杂。)

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

1 个答案:

答案 0 :(得分:10)

无需使用String个对象。代替:

  • Item个对象放入JList
  • 在列表中添加ListCellRenderer,以最友好的方式显示Item对象。
  • 当用户选择项目时,在不同的地方显示详细信息(我正在考虑一个包含2列标签和文本字段的面板,以及两行 - 每个属性一个,以及也许是 Save
  • 的按钮

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

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

这是example of placing the 'view/edit panel' (the file details) below the selection component (the table)