1. 常用组件:
1) 这里先不演示Canvas(画布,在后面绘图中会讲到)、Scrollbar(滚条)、ScrollPane|Panel|Frame(之前讲过了);
2) 按钮类:
i. Button:非常常见的单击按钮,Button(String Label); // 需要按钮上的文本标签
ii. Checkbox:复选框;
iii. CheckboxGroup:用该组件包裹复选框可使复选框边单选框;
!CheckboxGroup的构造器就一个默认的无参构造器:CheckboxGroup();
!!Checkbox的构造器依据是否要变成单选框来决定:
a. 保持复选框:CheckboxGroup(String label, boolean state); // label是文本内容,state表示初始时是否选中
b. 变成单选框:CheckboxGroup(String label, CheckboxGroup group, boolean state); // group指定了单选按钮所属的组别
!!注意:如果将一组单选按钮加入容器并不是只将包裹它们的那个CheckboxGroup加入容器,而是直接将各个单选按钮加入容器!
iv. Label:标签,静态提示性文本框,Label(String text); // text即提示文本
3) 列表类:
i. List:列表框,可以添加多个项目,构造器及简单用法
a. List(int rows); // 指定最多可现实多少个项目,实际可以存放更多项目,默认只能单选
b. List(int rows, boolean multipleMode); // 第二个参数指定是否开启多选,true表示可以多选
c. void add(String item); // 添加一个项目,直接指定项目的文本标签
ii. Choice:下拉列表框,构造器及简单用法
a. 构造器就只有默认无参构造器:Choice();
b. 添加项目:void add(String item); // 和List的一样,比List少一个多选模式,因为无法多选,列表是下拉显示的,只能单选
4) 编辑框:
i. TextArea:多行编辑区域,TextArea(int rows, int columns); // 指定是几行几列的
ii. TextField:单行编辑区域,TextField(int coloumns); // 指定长度
!!!以上所有组件具体用法可查API,这里只提供最基本的创建方式和简单的使用法;
5) 示例:
public class AwtTest { public static void main(String[] args) { Frame f = new Frame("Component Test"); Box top = Box.createHorizontalBox(); Box topLeft = Box.createVerticalBox(); TextArea ta = new TextArea(5, 20); Panel pCheckboxs = new Panel(); Choice chColor = new Choice(); chColor.add("red"); chColor.add("green"); chColor.add("blue"); CheckboxGroup cbg = new CheckboxGroup(); Checkbox female = new Checkbox("female", cbg, false); Checkbox male = new Checkbox("male", cbg, true); Checkbox married = new Checkbox("married?", false); pCheckboxs.add(chColor); pCheckboxs.add(female); pCheckboxs.add(male); pCheckboxs.add(married); topLeft.add(ta); topLeft.add(pCheckboxs); List lColor = new List(6, true); lColor.add("red"); lColor.add("green"); lColor.add("blue"); top.add(topLeft); top.add(lColor); Panel bottom = new Panel(); TextField string = new TextField(50); Button btn = new Button("OK"); bottom.add(string); bottom.add(btn); f.add(top); f.add(bottom, BorderLayout.SOUTH); f.pack(); f.setVisible(true); } }