复制代码
import javax.swing.JFrame ;
import java.awt.Container ;
import java.awt.event.WindowEvent ;
import java.awt.event.WindowAdapter ;
import java.awt.GridLayout ;
import javax.swing.JComboBox ;
import javax.swing.JLabel ;
import javax.swing.BorderFactory ;
import java.util.Vector ;
class MyComboBox{
    private JFrame frame = new JFrame("Welcome TO MLDN") ;
    private Container cont = frame.getContentPane() ;    // 得到容器
    private JComboBox jcb1 = null ;
    private JComboBox jcb2 = null ;
    public MyComboBox(){
        this.frame.setLayout(new GridLayout(2,2)) ;    // 定义排版
        String nations[] = {"中国","巴西","美国","韩国","意大利","法国"} ;
        Vector<String> v = new Vector<String>() ;
        v.add("MLDN") ;    // 增加内容
        v.add("MLDNJAVA") ;    // 增加内容
        v.add("智囊团") ;    // 增加内容
        this.jcb1 = new JComboBox(nations) ;    // 实例化下拉列表框
        this.jcb2 = new JComboBox(v) ;    // 实例化下拉列表框

        // 为每一个下拉框增加一个边框
        this.jcb1.setBorder(BorderFactory.createTitledBorder("你喜欢去那个国家旅游?")) ;
        this.jcb2.setBorder(BorderFactory.createTitledBorder("你喜欢的网站?")) ;
        cont.add(this.jcb1) ;
        cont.add(this.jcb2) ;
        cont.add(new JLabel("下拉列表框")) ;
        this.frame.setSize(300,150) ;
        this.frame.setVisible(true) ;
        this.frame.addWindowListener(new WindowAdapter(){
            public void windowClosing(WindowEvent e){
                System.exit(1) ;
            }
        }) ;
    }
}

public class JComboBoxDemo01{
    public static void main(String args[]){
        new MyComboBox() ;
    }
}
复制代码
复制代码
import javax.swing.JFrame ;
import java.awt.Container ;
import java.awt.event.WindowEvent ;
import java.awt.event.WindowAdapter ;
import java.awt.GridLayout ;
import javax.swing.JComboBox ;
import javax.swing.JLabel ;
import javax.swing.JLabel ;
import javax.swing.AbstractListModel ;
import javax.swing.BorderFactory ;
import javax.swing.ComboBoxEditor ;
import javax.swing.ComboBoxModel ;
import java.util.Vector ;

class MyComboBoxModel extends AbstractListModel implements ComboBoxModel{
    private String nations[] = {"中国","巴西","美国","韩国","意大利","法国"} ;
    private String item = null ;
    public Object getSelectedItem(){    // 得到选择的选项
        return this.item ;
    }
    public void setSelectedItem(Object anItem){    // 设置选项
        this.item = (String)anItem ;
    }
    public int getSize(){
        return this.nations.length ;
    }
    public Object getElementAt(int ind){
        return this.nations[ind] ;
    }
}

class MyComboBox{
    private String defaultMsg = "请选择或输入国家的名称。" ;
    private JFrame frame = new JFrame("Welcome TO MLDN") ;
    private Container cont = frame.getContentPane() ;    // 得到容器
    private JComboBox jcb1 = null ;
    private JComboBox jcb2 = null ;
    public MyComboBox(){
        this.frame.setLayout(new GridLayout(2,1)) ;    // 定义排版
        
        this.jcb1 = new JComboBox(new MyComboBoxModel()) ;    // 实例化下拉列表框
        this.jcb1.setEditable(true) ;    // 表示可以编辑

        // 为每一个下拉框增加一个边框
        this.jcb1.setBorder(BorderFactory.createTitledBorder("你喜欢去那个国家旅游?")) ;
        ComboBoxEditor editor = null ;
        editor = this.jcb1.getEditor() ;    /// 得到编辑对象
        this.jcb1.configureEditor(editor,defaultMsg) ;// 指定默认值
        this.jcb1.setMaximumRowCount(3) ;
        cont.add(this.jcb1) ;
        cont.add(new JLabel("下拉列表框")) ;
        this.frame.setSize(180,150) ;
        this.frame.setVisible(true) ;
        this.frame.addWindowListener(new WindowAdapter(){
            public void windowClosing(WindowEvent e){
                System.exit(1) ;
            }
        }) ;
    }
}

public class JComboBoxDemo02{
    public static void main(String args[]){
        new MyComboBox() ;
    }
}
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
import javax.swing.JFrame ;
import java.awt.Container ;
import java.awt.Font ;
import java.awt.event.WindowEvent ;
import java.awt.event.ActionListener ;
import java.awt.event.ItemListener ;
import java.awt.event.ItemEvent ;
import java.awt.event.ActionEvent ;
import java.awt.event.WindowAdapter ;
import java.awt.GridLayout ;
import javax.swing.JComboBox ;
import javax.swing.JLabel ;
import javax.swing.ComboBoxEditor ;
import javax.swing.BorderFactory ;
import java.util.Vector ;
class MyComboBox implements ItemListener,ActionListener{
    private JFrame frame = new JFrame("Welcome TO MLDN") ;
    private Container cont = frame.getContentPane() ;   // 得到容器
    private JComboBox jcb1 = null ;
    private JLabel label = new JLabel("www.MLDNJAVA.cn") ;  // 定义标签
    private String fontSize[] = {"10","12","14","16","18","20","22","24","26","48","72"} ;
    public MyComboBox(){
        this.frame.setLayout(new GridLayout(2,2)) ; // 定义排版
        this.jcb1 = new JComboBox(fontSize) ;   // 实例化下拉列表框
 
        this.jcb1.addItemListener(this) ;
        this.jcb1.addActionListener(this) ;
 
        this.jcb1.setEditable(true) ;   // 表示可以编辑
 
        // 为每一个下拉框增加一个边框
        this.jcb1.setBorder(BorderFactory.createTitledBorder("你喜欢去那个国家旅游?")) ;
        ComboBoxEditor editor = null ;
        editor = this.jcb1.getEditor() ;    /// 得到编辑对象
        this.jcb1.configureEditor(editor,"12") ;// 指定默认值
        this.jcb1.setMaximumRowCount(3) ;
 
        this.changeFontSize(12) ;   // 默认值
        cont.add(this.jcb1) ;
 
        cont.add(label) ;
        this.frame.setSize(300,150) ;
        this.frame.setVisible(true) ;
        this.frame.addWindowListener(new WindowAdapter(){
            public void windowClosing(WindowEvent e){
                System.exit(1) ;
            }
        }) ;
    }
    public void itemStateChanged(ItemEvent e){
        if(e.getStateChange()==ItemEvent.SELECTED){ // 判断是否是选中
            String itemSize = (String)e.getItem() ;
            try{
                this.changeFontSize(Integer.parseInt(itemSize)) ;
            }catch(Exception e1){
                 
            }
        }
    }
 
    public void actionPerformed(ActionEvent e){
        String item = (String)this.jcb1.getSelectedItem() ;
        int size = 12 ; // 设置一个默认大小
        try{
            size = Integer.parseInt(item) ;
        }catch(Exception e1){}
        this.changeFontSize(size) ;
        // 判断给定的size是否存在,如果不存在则需要将新的内容设置上去
        if(!this.isExists(item))
        {
            this.jcb1.addItem(jcb1.getSelectedItem()) ;
        }
    }
    public boolean isExists(String item){
        boolean flag = false ;
        for(int i=0;i<this.jcb1.getItemCount();i++){
            if(item.equals(this.jcb1.getItemAt(i))){
                flag = true ;
            }
        }
        return flag ;
    }
    public void changeFontSize(int size){
        System.out.println("*************" + size) ;
        Font fnt = new Font("Serief",Font.BOLD,size) ;
        this.label.setFont(fnt) ;
    }
 
}
 
public class JComboBoxDemo03{
    public static void main(String args[]){
        new MyComboBox() ;
    }
}