第一节 第二节 第三节 第四节 第五节 第六节 第七节 第八节 第九节 第十节 第十一节
第七节    复选框和列表
1 复选框和单选按钮
可以通过Checkbox类创建复选框和单选按钮,它们都是状态按钮(也就是说这些按钮都具有true/false值)。我们先讨论复选框。复选框的构造函数及常用方法如表10.3所示。
表13.1 Checkbox类的构造函数及常用方法

构造函数

说明

public Checkbox()

构造一个无标签的复选框对象,默认状态为false

public Checkbox(String label)

构造一个含有指定标签的复选框对象,默认状态为false

public Checkbox(String label,Boolean state)

构造一个含有指定标签并指定状态的复选框对象

常用方法

说明

public String getLabel()

获取复选框的标签

public boolean getState()

获取复选框的状态

public void setLabel(String label)

设置复选框的标签

public void setState(Boolean state)

设置复选框的状态


例13.1的程序是使用复选框的例子,当该程序开始运行时,所有复选框都为非选中状态,如图13.1。
【例13.1】
//Fig. 10.7: MyCheckbox.java
//Creating Checkbox buttons.
import java.applet.Applet;
import java.awt.*;
public class MyCheckbox extends Applet{
private String city[]={"桂林","福州","青岛","济南","深圳","大连"};
private Checkbox c[] = new Checkbox[6];
public void init()
{
add(new Label("请选择是省会的城市: "));
//Create six Checkboxes and add them to applet
for(int i=0;i
c[i]=new Checkbox(city[i]);
add(c[i]);
}
add(new Label("这是一个复选框的例子"));
}
}

图13.1 创建复选框按钮

通过下列语句:
private Checkbox c[]=new Checkbox[6];
声明了6个Checkbox引用。通过下列语句:
for(int i=0;i
c[i]=new Checkbox(city[i]);
add(c[i]);
}
创建六个Checkbox对象,并把它们添加到applet中。
可以将复选框组合到一起,成为一组单选按钮,在这组按钮中,每次只能选中其中一个(值为true),其他复选框都处于未选中状态(即值为false)。单选按钮由CheckboxGroup类和Checkbox类共同创建。CheckboxGroup类是从Object类直接继承的,因此,CheckboxGroup对象不能添加到容器中。表10.4列出了用于创建单选按钮的构造函数,其常用方法与复选框相同。
表13.2 CheckboxGroup类和Checkbox类的构造函数

构造函数

说明

public CheckboxGroup()

创建一个CheckboxGroup对象

public Checkbox(String label,

CheckboxGroup c,Boolean state)

创建一个单选按钮,其标签为label,状态为state,该单选按钮将添加到CheckboxGroup c中


【例13.2】演示单选按钮的创建方法,运行结果如图10.8。
//Fig. 10.8: RadioButton.java
//Creating radio buttons using CheckboxGroup and Checkbox.
import java.applet.Applet;
import java.awt.*;
public class RadioButton extends Applet{
private String city[]={"北京","上海","西安","重庆","深圳","大连"};
private Checkbox radio[] = new Checkbox[6];
private CheckboxGroup c=new CheckboxGroup();
public void init()
{
add(new Label("请选择中国最大的城市: "));
//Create six radio buttons and add them to applet
for(int i=0;i
radio[i]=new Checkbox(city[i],c,false);
add(radio[i]);
}
add(new Label("这是一个单选按钮的例子"));
}
}

图13.2 创建一组单选按钮

下列语句创建一个CheckboxGroup引用:
private CheckboxGroup c=new CheckboxGroup();
下列语句用于对单选按钮进行实例化:
radio[i]=new Checkbox(city[i],c,false);
构造函数的第一个参数是单选按钮的标签,第二个参数是拥有该单选按钮的CheckboxGroup,最后一个参数表示单选按钮的初始状态――在一组单选按钮中,只能有一个设置为true;但是,允许将所有单选按钮的初始值都设为false。如果在同一个CheckboxGroup中将多个单选按钮设为true,那么只有最后一个设置为true的单选按钮是有效的(处于被选中状态)。
关于复选框和单选按钮常用方法的使用,将在以后章节中详细讲解。
2 列表框和下拉列表框
列表框(List)用于显示一系列的选项,用户可以从中选择一个或多个选项。
下拉列表框(Choice)与列表框相似,不同的是下拉列表框只能从列表中选择一个选项,当用户单击旁边下拉箭头按钮时,选项列表打开。表10.8列出了List类及Choice类的构造函数及常用方法。
表13.6 List类和Choice类的构造函数及常用方法

构造函数

说明

public List()

创建一个List对象,该对象只允许选中一个选项

public List(int items)

创建一个List对象,选项可见行数由items指定

public List(int items,boolean ms)

创建一个List对象,选项可见行数由items指定,是否可以多选由ms指定

public Choice()

创建一个Choice对象

常用方法

说明

public void add(String item)

在列表框/下拉列表框最后添加一个选项

public String getItem(int index)

获取列表框/下拉列表框指定索引的选项,索引值从0开始

public int getItemCount()

获取列表框/下拉列表框的项目总数

public String[] getItems()

获取列表框的所有选项

public int getSelectedIndex()

获取列表框/下拉列表框中被选定选项的索引,索引值从0开始,列表框中若有多个选项被选定,则返回-1

public int[] getSelectedIndexes()

获取列表框中所有被选定选项的索引,索引值从0开始

public String getSelectedItem()

获取列表框/下拉列表框中被选定的选项,列表框中若有多个选项被选定,则返回null

public String[] getSelectedItems()

获取列表框中所有被选定的选项

public void remove(int position)

删除列表框/下拉列表框指定位置的选项

public void remove(String item)

删除列表框/下拉列表框中第一个出现且与参数相同的选项

public void removeAll()

删除列表框/下拉列表框中所有选项

public void select(int index)

选定列表框/下拉列表框中指定索引的选项


【例13.6】演示列表框和下拉列表框的使用。程序运行结果如图10.12。
//Fig. 10.12: ListAndChoiceDemo.java
//Creating a List and a Choice.
import java.applet.Applet;
import java.awt.*;
public class ListAndChoiceDemo extends Applet{
private List cityList;
private Choice cityChoice;
public void init()
{
//create a list with 5 items visible
//allow multiple selections
cityList=new List(5,true);
//add 4 items to the list
cityList.add("桂林");
cityList.add("福州");
cityList.add("济南");
cityList.add("大连");
//create a choice
cityChoice=new Choice();
//add 4 items to the choice
cityChoice.addItem("北京");
cityChoice.addItem("上海");
cityChoice.addItem("西安");
cityChoice.addItem("重庆");
add(new Label("中国最大的城市: "));
add(cityChoice);
add(new Label("省会城市: "));
add(cityList);
}
}

图13.6 List类和Choice类示例

在实际操作中,若列表框的可见行数少于列表框总选项数,则列表框自动添加竖直滚动条,在允许多选的情况下,你可以通过鼠标单击选择/取消选择一个选项。
可以通过列表框/下拉列表框的add方法或addItem方法向列表框中添加选项。有关列表框/下拉列表框其他方法的使用,我们将在后面的章节中讲解。