欢迎来到天天文库
浏览记录
ID:15518867
大小:458.00 KB
页数:28页
时间:2018-08-03
《java图形界面设计(二)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第6章图形界面设计(二)6.1选择框和单选按钮选择框、单选框和单选按钮都是选择组件,选择组件有两种状态,一种是选中(on),另一种是未选中(off),它们提供一种简单的“on/off”选择功能,让用户在一组选择项目中作选择。6.1.1选择框选择框(JCheckbox)的选中与否形状是一个小方块,被选中则在框中打勾。当在一个容器中有多个选择框,同时可以有多个选择框被选中,这样的选择框也称为复选框。与选择框相关的接口是ItemListener,事件类是ItemEvent。JCheckbox类常用的构造
2、方法有以下3个:(1)JCheckbox(),用空标题构造选择框。(2)JCheckbox(Strings),用给定的标题s构造选择框。(3)JCheckbox(Strings,booleanb),用给定的标题s构造选择框,参数b设置选中与否的初始状态。JCheckbox类的其他常用方法如下:(1)getState(),获取选择框的状态。(2)setState(booleanb),设置选择框的状态。(3)getLabel(),获取选择框的标题。(4)setLabel(Strings),设置选择框的
3、标题。(5)isSelect(),获取选择框是否被选中的状态。(6)itemStateChanged(ItemEvente),处理选择框事件的接口方法(7)getItemSelectable(),获取事件源(8)addItemListener(ItemListenerI),为选择框设定的监视器。(9)removeItemListener(ItemListenerI),移去选择框的监视器。【例6.1】声明一个面板子类,面板子类对象有3个选择框。classPanel1extendsJPanel{JCh
4、eckboxbox1,box2,box3;Panel1(){box1=newJCheckbox("足球");box2=newJCheckbox("排球");box3=newJCheckbox("蓝球");add(box1);add(box2);add(box3);}}6.1.2单选框当在一个容器中放入多个选择框,且没有用ButtonGroup对象将它们分组,则可以同时选中多个选择框。如果使用ButtonGroup对象将选择框分组,同一时刻组内的多个选择框只允许有一个被选中,称同一组内的选择框为单选
5、框。单选框分组的方法是先创建ButtonGroup对象,然后将希望为同组的选择框添加到同一个ButtonGroup对象中。参见例6.2程序的面板子类Panel2的声明,组内有3个单选框。6.1.3单选按钮单选按钮(JRadioButton)的功能与单选框相似。使用单选按钮的方法是将一些单选按钮用ButtonGroup对象分组,使同一组内的单选按钮只允许一个被选中。单选按钮与单选框的差异是显示的样式不同,单选按钮是一个圆形的按钮,单选框是一个小方框。JRadioButton类的常用构造方法有以下几个
6、:(1)JRadioButton(),用空标题构造单选按钮。(2)JRadioButton(Strings),用标题s构造单选按钮。(3)JRadioButton(Strings,booleanb),用标题s构造单选按钮,参数b设置选中是否的初始状态。单选按钮使用时需要使用ButtonGroup将单选按钮分组,单选按钮分组的方法是先创建ButtonGroup对象,然后将同组的单选按钮添加到同一个ButtonGroup对象中。参见例6.2程序的面板子类Panel1的声明,组内有3个单选按钮。6.1.
7、4选择项目事件处理用户对选择框或单选按钮做出选择后,程序应对这个选择作出必要的相应,程序为此要处理选择项目事件。选择项目事件处理程序的基本内容有:监视选择项目单选的类要实现接口ItemListener,程序要声明和建立选择对象,为选择对象注册监视器,编写处理选择项目事件的接口方法itemStateChanged(ItemEvente),在该方法内用getItemSelectable()方法获取事件源,并作相应处理。【例6.2】处理选择项目事件的小应用程序。一个由3个单选按钮组成的产品选择组,当选中
8、某个产品时,文本区将显示该产品的信息。另有一个由3个选择框组成的购买产品数量选择框组,当选择了购买数量后,在另一个文本框显示每台价格。importjava.applet.*;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;classPanel1extendsPanel{JRadioButtonbox1,box2,box3;ButtonGroupg;Panel1(){setLayout(newGridLayout
此文档下载收益归作者所有