java - 如何从 JComboBox 中的选定项目中获取包含 2 个项目的数组?

标签 java swing netbeans arraylist jcombobox

我有一个ArrayList<ArrayList<Object>> Suppliers 。每个ArrayList<Object>有 2 个元素,一个 int(一个 id 且 id 可能不是彼此连续的。)和一个字符串(名称)。 现在,在 JComboBox 中,我创建一个 DefaultComboBoxModel,其中包含主 ArrayList“供应商”。

jcbSuppliers.setModel (new DefaultComboBoxModel (suppliersdata.Suppliers.toArray ()));

JComboBox 显示了每个元素,例如 [1,本地供应商],[2,外部供应商],[4,其他供应商]。

Capture 1

在 NetBeans 调试中,我在 jcbSuppliers 上放置了一个 Watch。变量窗口显示 jcbSuppliers 的每个元素都是一个包含 2 个对象的 ArrayList。

Capture 2

现在我的问题是:

如何获取这 2 个项目或这 2 个对象的数组,以及所选对象或项目的数组?

非常感谢您的帮助。非常感谢。

最佳答案

  • 首先,我必须向 Flextra 和他的评论表示敬意,因为 Spring 可以帮助您解耦代码,使其更容易增强和调试。
  • 接下来我建议您重新考虑当前的模型设置。我建议您创建一个自定义类来保存每个供应商需要的两条数据,而不是从嵌套的 ArrayList 开始。
  • 然后创建此自定义类的一个非嵌套 ArrayList。
  • 然后,您可以通过为 JComboBox 提供一个 toString() 方法来告诉 JComboBox 如何显示您的对象,该方法会根据您的需要显示信息,
  • 或者为 JComboBox 提供一个自定义单元格渲染器,以根据您的需要显示信息。
  • 然后,当选择组合框时,如果您获得 selectedItem,它将是您的类的一个对象,并且可以轻松提取两个相关的信息。

关于java - 如何从 JComboBox 中的选定项目中获取包含 2 个项目的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23025733/

相关文章:

java - 使用 NetBeans 连接到 Java 中的 Access 数据库

java - 如何让自定义 javadoc 标记出现在 netbeans 的自动完成 javadoc 中?

java - 库上的 log4j.properties

java - 创建时的 Android 方法

java - 比较两个字符串给出 java.lang.NullPointerException

java - 从java中的JTextArea读取文本

java - JComboBox 未显示

java - 如何在 Java GUI 中的每个 TreeSelectionEvent 上刷新 JTable?

Java KeyPressed KeyRelease 并按住某个键

java - 包 'au.com.bytecode' 不存在 (OpenCSV)