6.4列表框
列表框使用户易于操作大量的选项。创建列表框的方法和Choicebutton有copy;相似。列表框的所有条目都是可见的,如果选项很多,超出了列表框可见区的范围,则列表框的旁边将会有一个滚动条。首先,创建列表框:Listl=newList(4,false);这个成员函数创建了一个显示4行的列表框。第二个参数\"false\"表示这个列表框是单选的,如果是\"true\",则表示是多选的。下面增加列表框的选项:l.addItem(\"北copy;大学\");l.addItem(\"清华大学\");l.addItem(\"吉林大学\");l.addItem(\"复copy;大学\");l.addItem(\"南开大学\");l.addItem(\"天津大学\");l.addItem(\"南copy;大学\");add(l);
6.4.1在列表框中进行选择
可以用成员函数getSelectedItem()或getSelectedItems()来接收在列表框中被选的选项。在单选列表框里,\"双击\"一个选项就可以触发一个可被action()成员函数捕捉到的事件。publicbooleanaction(Evente,Objectarg){...if(e.targetinstanceofList){System.out.println(\"Listentry:\"+arg);}...}
6.4.2多选列表框
对于多选列表框,要使你的选择产生作用,需要使用其他的外部事件。例如,你可以使用按钮事件:publicbooleanaction(Evente,Objectarg){...if(e.targetinstanceofButton){...if(\"Ok\".equals(arg)){string[]selected;selected=l.getSelectedItems();for(intI=0;I
6.5文本域
文本域一般用来让用户输入象姓名、信用卡号这样的信息,它是一个能够接收用户的键盘输入的小块区域。
6.5.1创建文本域
在创建文本域时,有四种类型copy;你选择:空的、空的并且具有指定长度、带有初始文本内容的和带有初始文本内容并具有指定长度的。下面是生成这四种文本域的代码:TextFieldtf1,tf2,tf3,tf4;//空的文本域tf1=newTextField();//长度为20的空的文本域tf2=newTextField(20);//带有初始文本内容的文本域tf3
=newTextField(\"你好\");//带有初始文本内容并具有指定长度的文本域tf4=newTextField(\"你好\",30);add(tf1);add(tf2);add(tf3);add(tf4);
6.5.2文本域事件
当用户在文本域里敲\"回车\"键时,就产生了一个文本域事件。象其他事件一样,你可以以在成员函数action()中捕捉到这个事件。
publicbooleanaction(Evente,Objectarg){...if(e.targetinstanceofTextField){System.out.println(\"TextField:\"+arg);}...}
6.6文本区
文本区可以显示大段的文本。
6.6.1创建文本区
与文本域类似,创建文本区时也有四种类型copy;选择,但如果指定文本区的大小,必须同时指定行数和列数。TextAreata1,ta2;//一个空的文本区ta1=newTextArea();//一个带有初始内容、大小为5x40的文本区ta2=newTextArea(\"你好!\",5,40);
可以用成员函数setEditable()来决定用户是否可对文本区的内容进行编辑。//使文本区为只读的ta2.setEditable(false)
6.6.2接收文本区的内容
可以用成员函数getText()来获得文本区的当前内容。例如:System.out.println(ta1.getText());文本区本身不产生自己的事件。但你可以用外部事件来接收文本区的内容:publicbooleanaction(Evente,Objecto){if(e.targetinstanceofButton){if(\"send\".equals(o)){StringtextToSend=ta1.getText();
System.out.println(\"sending:\"+textTosend);
mySendFunction(textToSend);}}else{...}}
6.7画板
画板能够捕捉到copy;露事件、鼠标事件和其他类似的事件。基本的画板类不处理这copy;事件,但你可以copy;展它来创建有你所需功能的画板类。
6.7.1创建画板
importjava.awt.*;importjava.applet.Applet;
publicclasssuperGUIextendsApplet{...myCanvasdoodle;...public
voidinit(){...//建立我们的画板doodle=newmyCanvas();
doodle.reshape(0,0,100,100);leftPanel.add(\"Center\",doodle);...}}
classmyCanvasextendsCanvas{publicvoidpaint(Graphicsg)
{g.drawRect(0,0,99,99);g.drawString(\"Canvas\",15,40);}}
6.7.2画板事件
你可以覆盖一般的事件处理成员函数。下面是一个包含了mouseDown事件处理的例子:importjava.awt.*;importjava.applet.Applet;
publicclasscanvasextendsApplet{
Buttonb1;
publicvoidinit(){//SetourlayoutasaBorderstylesetLayout(new
BorderLayout(15,15));b1=newButton(\"Test\");myCanvasc1=new
myCanvas(100,100);//addthecanvasandthebuttontotheapplet
add(\"Center\",c1);add(\"South\",b1);}
publicbooleanaction(Evente,Objectarg){System.out.println(\"Event:
\"+arg);returntrue;}
publicbooleanmouseDown(Evente,intx,inty)
{System.out.println(\"Mouseworks:(\"+x+\",\"+y+\")\");returntrue;}}
classmyCanvasextendsCanvas{privateintwidth;privateintheight;
publicmyCanvas(intw,inth){width=w;height=h;reshape(0,0,w,
h);}
publicvoidpaint(Graphicsg){g.setColor(Color.blue);g.fillRect(0,0,
width,height);}
publicbooleanmouseDown(Evente,intx,inty){if((x
推荐阅读:
2018年3月计算机二级考试JAVA入门知识点:JAVA的\异常\
2018年3月计算机二级考试JAVA入门知识点:JAVA键盘事件
2018年3月计算机二级考试JAVA入门知识点:java流程控制
2018年3月计算机二级考试JAVA入门知识点:JAVA的历史、现状
2018年3月计算机二级考试JAVA入门知识点:简单JAVA程序编写
出国留学网计算机等级考试 栏目推荐: