第6章_Java图形用户界面2

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第6章Java图形用户界面6.5单选框、复选框、列表和下拉列表6.5单选框、复选框、列表和下拉列表6.5.1单选框和复选框Checkbox和Radiobox继承自Component类,是一种基本控制组件,使用时需要添加到容器中。一、复选框(Checkbox)1.创建复选框的构造函数publicCheckbox()-创建没有标签的复选框publicCheckbox(Stringlabel)-创建带有文本标签的复选框publicCheckbox(Stringlabel,booleanstate)-创建带有文本标签label的复选框,并设置初始状态是选中(true)还是未选中(false)。Checkbox对象默认是未选中。二、将复选框放到容器中使用add()方法。三、处理复选框选中事件回顾处理按钮事件的过程。选择或取消选择一个复选框会引发选项事件(ItemEvent),ItemEvent类存在于java.awt.event包中,选项事件的处理是通过ItemListener来完成的。1.在程序最前面引入事件响应包中的类importjava.awt.event.*;2.程序要实现ItemListener接口publicclass类名extends父类implementsItemListener{...;publicvoiditemStateChanged(ItemEvente){//事件处理代码}}选项事件处理方法3.为Checkbox对象接上一个事件监听器publicvoidaddItemListener(ItemListenerlistener);4.选项事件的处理当用户选择某复选框后,将引发动作事件,执行itemStateChanged()方法,java系统将自动创建ItemEvent类的一个对象e,通过该类的方法getItemSelectable()可判断事件源,即单击了哪个复选框。通常为this四、常用方法publicvoidsetState(booleanstate)-设置复选框的选中状态publicbooleangetState()-得到复选框的选中状态。选中为true,否则为false。publicStringgetLabel()-得到复选框的标签文本。例11编写程序,要求将一个文本框中的字符串通过点击复选框变为黑体或斜体。//UseCheckbox.javaimportjava.applet.*;importjava.awt.*;importjava.awt.event.*;publicclassUseCheckboxextendsAppletimplementsItemListener{TextFieldtf;Checkboxc1,c2;publicvoidinit(){setSize(200,100);setLayout(newFlowLayout(FlowLayout.CENTER,30,10));组件以居中形式对齐,组件间左右间隔为30pix,上下间隔为10pixtf=newTextField(Java程序设计,20);tf.setFont(newFont(楷体,Font.PLAIN,15));add(tf);c1=newCheckbox(黑体);c1.addItemListener(this);add(c1);c2=newCheckbox(斜体);c2.addItemListener(this);add(c2);}publicvoiditemStateChanged(ItemEvente){intvar_c1=(c1.getState()?Font.BOLD:Font.PLAIN);intvar_c2=(c2.getState()?Font.ITALIC:Font.PLAIN);tf.setFont(newFont(楷体,var_c1+var_c2,15));}}创建一个长度为20,含有给定字符串的文本框对象。//UseCheckbox.htmlHTMLHEADTITLEJava小程序/TITLE/HEADBODYAPPLETCODE=UseCheckboxWIDTH=250HEIGHT=250/APPLET/BODY/HTML运行结果为:二、单选框(Radiobox)单选框是通过把一组Checkbox对象归并到一个选框组(CheckboxGroup类)对象来实现的。注意:在创建单选框之前,应先创建选项组CheckboxGroup类的对象。类CheckboxGroup不是Componet的子类,它是Object的直接子类。因此,选框组不能对ItemEvent事件做出响应。但其中的每个Checkbox对象都可以响应ItemEvent事件,其处理方式与复选框类似。1.创建单选框先定义一个选框组CheckboxGroup类的对象:CheckboxGroupgroup=newCheckboxGroup();然后使用Checkbox类构造函数:publicCheckbox(Stringlabel,booleanstate,CheckboxGroup)创建单选框。两者位置可互换二、将复选框放到容器中使用add()方法。三、处理单选框选中事件单选框事件处理实际上是对该选框组的每个Checkbox对象进行处理,其处理方式与复选框的ItemEvent事件处理类似。判断事件源的方法:方法一、ItemEvent类的方法getItemSelectable()。方法二、CheckboxGroup类的方法getSelectedCheckbox()。四、常用方法getState()-返回单选框选中状态setState(booleanb)-设置单选框选中状态StringgetLabel()-得到单选框的标签文本。例12编写一个程序,有4个单选框,分别对应4幅图片的名称1.jpg~4.jpg,图片存放到程序代码所在目录中。要求当点击图片名称前的复选框时,显示对应的图片。//UseCheckboxGroup.javaimportjava.applet.*;importjava.awt.*;importjava.awt.event.*;publicclassUseCheckboxGroupextendsAppletimplementsItemListener{CheckboxGroupcg=newCheckboxGroup();Checkboxck[]=newCheckbox[4];Image[]img=newImage[4];intk=0;publicvoidinit(){setSize(400,200);for(inti=0;iimg.length;i++){img[i]=getImage(getCodeBase(),(i+1)+.jpg);}for(inti=0;ick.length;i++){ck[i]=newCheckbox(图片+(i+1),cg,false);ck[i].addItemListener(this);add(ck[i]);}ck[0].setState(true);}publicvoiditemStateChanged(ItemEvente){for(inti=0;iimg.length;i++){//if(cg.getSelectedCheckbox()==ck[i])if(e.getItemSelectable()==ck[i])k=i;}repaint();}publicvoidpaint(Graphicsg){g.drawImage(img[k],50,50,this);}}//UseCheckboxGroup.htmlHTMLHEADTITLEJava小程序/TITLE/HEADBODYAPPLETCODE=UseCheckboxGroupWIDTH=250HEIGHT=250/APPLET/BODY/HTML运行结果为:一、下拉列表(Choice)6.6.2列表和下拉列表下拉列表类Choice在java.awt中,它继承自组件类Component。1、创建Choice对象并添加选项Choicechoice=newchoice();//创建下拉列表对象choicepublicvoidadd(Stringitem)或publicvoidadditem(Stringitem)向下拉列表添加选项:例:choice.add(“car”);choice.addItem(“car”);2.将Choice对象添加到容器中使用方法add()实现。3.下拉列表的事件处理同复选框的事件处理。4.Choice类的其它常用方法publicintgetSelectedIndex()-得到被选项的索引值。publicvoidgetSelectedItem()-得到被选项的字符串。publicvoidinsert(Stringitem,intindex)-在指定索引值index处插入一个选项itempublicvoidselect(intpos)-选择指定索引值的选项publicvoidselect(Stringstr)-选择指定选项的字符串选项publicvoidremove(intposition)-删除指定索引值的选项publicvoidremove(Stringitem)-删除指定选项的字符串选项publicvoidremoveAll()-删除所有选项例13编写小程序,选中下拉列表中所列出的单词,则在标签上显示对应的中文释义。//UseChoice.javaimportjava.applet.*;importjava.awt.*;importjava.awt.event.*;publicclassUseChoiceextendsAppletimplementsItemListener{Choicechoice=newChoice();Labellabel=newLabel();publicvoidinit(){setSize(300,100);choice.add(car);choice.addItem(hand);choice.addItem(head);choice.addItem(warm);add(choice);choice.addItemListener(this);choice.select(2);add(label);}publicvoiditemStateChanged(ItemEvente){if(choice.getSelectedIndex()==0)label.setText(n.汽车;小汽车;车辆);if(choice.getSelectedItem()==hand)label.setText(n.手;支配;指针;手艺);if(choice.getSelectedItem()==head)label.setText(n.头脑;领袖;最前面的部分;顶点);if(choice.getSelectedItem()==warm)label.setText(adj.暖和的;激烈的;多情的;兴奋的);}}选择索引值为2的选项//UseChoice.htmlHTMLHEADTITLEJava小程序/TITLE/HEADBODYAPPLETCODE=UseChoiceWIDTH=250HEIGHT=250/APPLET/BODY/HTML运行结果为:二、列表(List)下拉列表类Choice在java.awt中,它继承自组件类Component。用来列表显示一系列选项,用户可以从中选择一项或多项。1.创建List对象添加选项List();List(introws);//rows表示一次显示几个选项。若选项总数大于rows,显示窗口出现滚动条。List(introws,booleanmultipleModel)//multipleModel值为false时,表示该List为

1 / 44
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功