我有一个ArrayList<ArrayList<Object>> Suppliers
。每个ArrayList<Object>
有 2 个元素,一个 int(一个 id 且 id 可能不是彼此连续的。)和一个字符串(名称)。
现在,在 JComboBox 中,我创建一个 DefaultComboBoxModel,其中包含主 ArrayList“供应商”。
jcbSuppliers.setModel (new DefaultComboBoxModel (suppliersdata.Suppliers.toArray ()));
JComboBox 显示了每个元素,例如 [1,本地供应商],[2,外部供应商],[4,其他供应商]。
在 NetBeans 调试中,我在 jcbSuppliers 上放置了一个 Watch。变量窗口显示 jcbSuppliers 的每个元素都是一个包含 2 个对象的 ArrayList。
现在我的问题是:
如何获取这 2 个项目或这 2 个对象的数组,以及所选对象或项目的数组?
非常感谢您的帮助。非常感谢。
最佳答案
- 首先,我必须向 Flextra 和他的评论表示敬意,因为 Spring 可以帮助您解耦代码,使其更容易增强和调试。
- 接下来我建议您重新考虑当前的模型设置。我建议您创建一个自定义类来保存每个供应商需要的两条数据,而不是从嵌套的 ArrayList 开始。
- 然后创建此自定义类的一个非嵌套 ArrayList。
- 然后,您可以通过为 JComboBox 提供一个
toString()
方法来告诉 JComboBox 如何显示您的对象,该方法会根据您的需要显示信息, - 或者为 JComboBox 提供一个自定义单元格渲染器,以根据您的需要显示信息。
- 然后,当选择组合框时,如果您获得 selectedItem,它将是您的类的一个对象,并且可以轻松提取两个相关的信息。
关于java - 如何从 JComboBox 中的选定项目中获取包含 2 个项目的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23025733/