Java如何创建JComboBox?

AJComboBox允许用户从组件中可用的下拉菜单中选择一个值。当组合框设置为可编辑时,用户可以通过直接在组合框编辑器中键入值来输入自己的值。下面的代码演示了如何创建简单的组合框组件。

package org.nhooo.example.swing;

import javax.swing.*;
import java.awt.*;

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

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

        JLabel label1 = new JLabel("Month  :");
        JLabel label2 = new JLabel("Number :");

        //为我们的JComboBox组件创建一些项目。在这个例子中
        // 将传递一个字符串数组,这些字符串是月份的名称。
        String[] months = {"January", "February", "March", "April", "Mei", "June",
            "July", "August", "September", "October", "November", "December"};

        // 创建一个月份选择组合框。
        JComboBox<String> comboBox = new JComboBox<>(months);

        // 在下面,我们创建一个ComboBoxModel,而不是直接传递一个字符串数组
        //作为组合框数据模型。例如,使用模型,我们可以定义
        // 组合框的选定项目。
        ComboBoxModel<String> model =
            new DefaultComboBoxModel<>(new String[] {"1", "2", "3", "4", "5"});
        model.setSelectedItem("3");
        JComboBox<String> numberComboBox = new JComboBox<>(model);

        // 我们还将组合框设置为可编辑,以便用户可以输入自己的
        // 组合框中定义的值以外的其他值。
        numberComboBox.setEditable(true);

        // 将整个组件添加到外框内容窗格。
        getContentPane().add(label1);
        getContentPane().add(comboBox);

        getContentPane().add(label2);
        getContentPane().add(numberComboBox);
    }

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