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); } }); } }