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

2024-03-16

我一直在尝试更新我的 Java 知识,并且一直在构建一个小型 GUI 程序,但遇到了一些问题。

基本上,我有一个JList我目前正在使用来自我的一个类的对象中的字符串填充该类,该类实现了AbstractListModel我们可以称之为我的ItemList班级。它包含一个ArrayList该类型的对象的数量Item它实现了Serializable.

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

现在,我正在寻找的是最简单的方法来做到这一点,并且我假设有一种(相对)简单的方法来做到这一点,因为在 GUI 应用程序中这是很常见的事情(尽管我不会不要把它放在 Java 和 Swing 之外,使其变得令人费解和复杂)。

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


无需使用String对象。反而:

  • Put Item中的对象JList.
  • Add a ListCellRenderer到列表,显示Item反对最用户友好的方式。
  • When the user selects an item, show the details in a different place (I'm thinking a panel with 2 columns of labels and text fields, and two rows - one for each attribute, and perhaps a button to Save)

编辑控件最好封装在一个面板中,然后在不需要时隐藏,并放置在各种位置,例如

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

这是一个将“查看/编辑面板”(文件详细信息)放置在选择组件(表格)下方的示例 https://codereview.stackexchange.com/questions/4446/file-browser-gui.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JList 的自定义组件而不仅仅是字符串 的相关文章

随机推荐