Java如何获得JComboBox的物品?

本示例演示JComboBox的getItemCount()方法的使用getItemAt(int index)以及如何获取组合框中的项目数以及如何获取每个项目。

package org.nhooo.example.swing;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class ComboBoxGetItems extends JFrame {
    public ComboBoxGetItems() {
        initialize();
    }

    private void initialize() {
        setSize(300, 300);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setLayout(new FlowLayout(FlowLayout.LEFT));

        // 创建带有等级作为值的JComboBox;
        String[] items = new String[] {"A", "B", "C", "D", "E", "F"};
        final JComboBox<String> gradeCombo = new JComboBox<>(items);
        getContentPane().add(gradeCombo);

        JButton button = new JButton("Get Items");
        final JLabel label = new JLabel("Items count: ");

        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                //在下拉列表框中获取项目数。重复
                // 从零到组合框项目的数量,并获取每个项目
                // 指定索引的。
                //
                // 在此示例中,我们只是将项目放置在StringBuilder中
                // 并稍后打印。
                int count = gradeCombo.getItemCount();
                StringBuilder builder = new StringBuilder();
                for (int i = 0; i < count; i++) {
                    builder.append(gradeCombo.getItemAt(i));
                    if (i < count - 1) {
                        builder.append(", ");
                    }
                }
                label.setText("Item count: " + count + "; ["
                    + builder.toString() + "]");
            }
        });

        getContentPane().add(button);
        getContentPane().add(label);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new ComboBoxGetItems().setVisible(true);
            }
        });
    }
}