Swing组件之复选框选项

来源:互联网 发布:优惠券满减算法 编辑:程序博客网 时间:2024/04/28 18:09

JComboBox组件可以让用户在多个选择项中选择其中一个,它有两种形式:不可编辑的和可编辑的。默认的形式是不可编辑的组合框,它的特征是拥有一个按钮和一个选择值的下拉列表。第二种形式,称为可编辑的组合框,它的特征是拥有一个文本框紧挨着一个小的按钮,用户可以在文本框中输入一个值或单击按钮显示下拉列表。


组合框节约屏幕空间,并且可编辑的组合框可以让用户快速地选择一个值,而不需要将选择限制在显示的值中。其他能够显示多选一的组件是单选按钮和列表。其中最直观的当然是单选按钮,但是组合框更适用于当对空间有限制或有超过一个的可用选择项时。当选择项目数很多时(如超过20个)或多项选择有效时,则使用列表更合适。
1.不可编辑组合框

下面的代码,创建一个不可编辑的组合框:

String[ ] petName = {“小狗”,”小花猫”,”鹦鹉”,”小兔子”,”小猪”};

JComboBox comboBox = new JComboBox(petName);

comboBox.setSelectedIndex(3);

还可以通过方法addItem(Object item)和insertItemAt(Object item,int index)向组合框中添加选项。例如:

comboBox.addItem(“小鸭子”);

comboBox.insertItemAt(“小白鼠”,4);

要获得用户在组合框中的选择项,可以使用下面两个方法:getItemAt(int)和getSelectedItem()。这两个方法都返回一个Object对象。
要从组合框中删除选择项,可以使用下面三个方法:removeAllItems()、removeItemAt(int)和removeItem(Object)。这三个方法都不需要有返回值。想知道组合框中总共有多少个可供选择的项,使用方法getItemCount(),它返回组合框中可供选择项的总数。

【例】使用组合框程序示例。

package chapter14;

import javax.swing.*;

public class ComboBoxDemo {

       JComboBox comboBox;                                      //声明组合框对象

       JFrame frame;                                                    //声明窗体对象

       JPanel contentPane;                                            //声明面板对象

       JLabel label;                                                        //声明标签对象

       public ComboBoxDemo () {                        //不带参数的构造器

              frame = new JFrame("ComboBoxDemo ");                         //创建窗体对象

              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);                      //设置当关闭窗体时,自动退出程序

              contentPane = new JPanel();                                 //创建面板对象

              frame.setContentPane(contentPane);                               //设置内容面板

              label = new JLabel(“请选择:”);                                //创建标签对象

              String[ ] petName = {“小狗”,”小花猫”,”鹦鹉”,”小兔子”,”小猪”};

              //创建不可编辑组合框.

              comboBox = new JComboBox (petName);

              comboBox.addItem(“小鸭子”);                                    //为组合框添加内容项目

              comboBox.insertItemAt(“小白鼠”,4);                               //向组合框中插入内容项

              comboBox.setSelectedIndex(3);                               //设置组合框默认选中项为第4项

      }

      // 创建GUI界面并显示.

      public void createAndShowGUI() {

              //添加组件.

              contentPane.add(label);                              //向内容面板中添加标签

              contentPane.add(comboBox);                     //向内容面板中添加组合框

              //显示窗口.

               frame.pack();                                   //设置窗体组件按首选大小显示

               frame.setVisible(true);                               //将窗体设置为可见(显示窗体)

      }

      public static void main(String[] args) {

              //为事件分发线程预订一个工作:创建并显示本程序的GUI.

              javax.swing.SwingUtilities.invokeLater(new Runnable() {

                      public void run() {

                              new ComboBoxDemo ().createAndShowGUI();

                       }

              });

       }

}

在这个程序中,创建了一个组合框。默认情况下,该组合框是不可编辑的,读者可以试着尝试修改组合框中的内容。当然,也可以通过调用setEditable(false)方法显式地将组合框设为不可编辑的。
2.可编辑组合框

下面的代码,创建一个可编辑组合框:

String[] patternExamples = {

               "dd MMMMM yyyy",

               "dd.MM.yy",

               "MM/dd/yy",

               "yyyy.MM.dd G 'at' hh:mm:ss z",

               "EEE, MMM d, ''yy",

               "h:mm a",

               "H:mm:ss:SSS",

               "K:mm a,z",

               "yyyy.MMMMM.dd GGG hh:mm aaa"

};

. . .

JComboBox patternList = new JComboBox(patternExamples);

patternList.setEditable(true);

注意最后一行,通过方法setEditable(true)方法将组合框设置为可编辑的。其他都简单,与不可编辑组合框类似。
在上面的程序中,同样创建了一个组合框,但使用其方法setEditable(true),将其设为可编辑的。可以看出来,在可编辑组合框中,可以输入下拉列表中没有的选项。
0 0