|
如果我们仅仅有两三个选项,那么用复选框和单选按钮就能胜任,可是如果我们有很多选择项,那么使用它们就不太合适了,我们可以使用下拉列表来实现这一功能。[li] ·JComboBox() 建立一个JComboBox组件。 [li] ·JComboBox(ComboBoxModel model) 根据model建立一个JComboBox组件。 [li] ·JComboBox(Object[] items) 利用数组对象建立一个JComboBox组件。 [li] ·JComboBox(Vector items) 利用Vector对象建立一个JComboBox组件。[/li]
下拉列表使用示例:
import java.awt.*;
import javax.swing.*;
public class JComboBoxDemo extends JFrame{
public JComboBoxDemo(){
Container contentPane=this.getContentPane();
JPanel jPanel1=new JPanel(new GridLayout(1,2));
//利用String数组建立JComboBox
String[] fruit={"苹果","香蕉","桔子","梨","芒果"};
JComboBox jComboBox1=new JComboBox(fruit);
jComboBox1.addItem("其他"); //在列表框选项的最后再添加一个"其他"选项
//设置jList1对象的带标题边框
jComboBox1.setBorder(BorderFactory.createTitledBorder("您最喜欢的水果:"));
jPanel1.add(jComboBox1);
//利用ComboBoxModel建立JComboBox
ComboBoxModel myModel=new MyModel();
JComboBox jComboBox2=new JComboBox(myModel);
jComboBox2.setBorder(BorderFactory.createTitledBorder("您最喜欢的水果:"));
jPanel1.add(jComboBox2);
contentPane.add(jPanel1);
this.setTitle("JComboBoxDemo");
this.setSize(350,90);
this.setVisible(true);
}
class MyModel extends DefaultComboBoxModel{
String[] fruit={"苹果","香蕉","桔子","梨","芒果"};
MyModel(){
for(int i=0;i<fruit.length;i++){
/* addElement()方法用于向列表框添加选项元素 */
this.addElement(fruit);
}
}
}
public static void main(String args[]){
JComboBoxDemo test=new JComboBoxDemo();
}
}
运行效果如下图所示:
上面这个实例分别用 String 数组和 ComboBoxModel 对象建立了两个 JComboBox 组件对象,在实际应用中根据具体情况调用恰当的方法建立 JComboBox 组件对象。其中 ComboBoxModel 是一个接口,要通过它建立 JComboBox 必须实现里面定义的所有方法,好在 Java 还提供了 DefaultComboBoxModel 实体类。此类实现了 ComboBoxModel 接口,并且提供了一些常用的方法,利用它我们可以很方便地建立 JComboBox 对象。 |
|