制作一个下拉列表框的核心需要用到swing包中JComboBox类。此外,要想定以一个JComboBox类型的对象,需要自定义一个继承AbstractListModel抽象类和实现ComboBoxModel接口的类,具体操作如下:
MyComboBox类
该类继承了AbstractListModel抽象类和实现了ComboBoxModel接口,代码如下:
import javax.swing.*;
public class MyComboBox extends AbstractListModel<String> implements ComboBoxModel<String> {
//列表框中初始化内容
String selectedItem = "点击选择";
//列表框中的选择内容
String[] str = {"身份证","军人证","医生证","学生证"};
@Override
public int getSize(){
return str.length;
}
@Override
public void setSelectedItem(Object item){
this.selectedItem=(String) item;
}
@Override
public Object getSelectedItem(){
return selectedItem;
}
@Override
public String getElementAt(int index){
return str[index];
}
}
JComboBox测试类
代码如下:
import javax.swing.*;
import java.awt.*;
public class JComboBoxTest extends JFrame {
//创建JCmboBox对象
JComboBox<String> jc = new JComboBox<>(new MyComboBox());
public JComboBoxTest(){
//将窗体布局设为流式布局
setLayout(new FlowLayout());
//创建窗体容器
Container container = getContentPane();
//创建一个标签
JLabel jl = new JLabel("请输入证件:");
//将列表框组件和标签添加到窗体容器当中
container.add(jl);
container.add(jc);
//将窗体设为可见
setVisible(true);
//设置窗体大小
setSize(300,300);
//将窗体置于屏幕中央
setLocationRelativeTo(null);
}
}
Test类
代码如下:
public class Test {
public static void main(String[] args){
//创建JComBoxTest对象
new JComboBoxTest();
}
}
运行结果
本章就到这里,谢谢大家浏览!