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