最新java考试题库第五章.docx
《最新java考试题库第五章.docx》由会员分享,可在线阅读,更多相关《最新java考试题库第五章.docx(22页珍藏版)》请在冰豆网上搜索。
最新java考试题库第五章
选择题
5-1下列关于容器的描述中,错误的是D
A.容器是由若干个组建和容器组成的
B.容器是对图形界面中界面元素的一种管理
C.容器是一种对指定宽和高的矩形范围
D.容器都是可以独立的窗口
5-2下列界面元素中,不是容器的是A
A.ListB.FrameC.DialogD.Panel
5-3下列关于实现图形用户界面的描述中,错误的是D
A.放在容器中的组件首先要定义,接着要初始化
B.放在容器中的多个组件是要进行布局的,默认的布局策略是FlowLayout
C.容器中所有组件都是事件组件,都可以产生事件对象
D.事件处理是忧监听者定义的方法来实现的
5-4下列关于组件类的描述中,错误的是A
A.组件类中包含了文本组件类(TextComponent)和菜单组件类(MenuComponent)
B.标签(Label)和按钮(Button)是组件类(Component)的子类
C.面板(Panel)和窗口(Window)是容器类(Container)的子类
D.文本框(TextField)和文本区(TextArea)是文本组件类(TextComponent)的子类
5-5在对下列语句的解释中,错误的是C
but.addActionListener(this);
A.but是某种事件对象,如按钮事件对象
B.this表示当前容器
C.ActionListener是动作事件的监听者
D.该语句的功能是将but对象注册为this对象的监听者
5-6所有事件类的父类是C
A.ActionEventB.AwtEventC.KeyEventD.MouseEvent
5-7所有GUI标准组件类的父类是C
A.ButtomB.ListC.ComponentD.Container
5-8下列各种布局管理器中Window类、Dialog类和Frame类的默认布局是C
A.FlowLayoutB.CardLayoutC.BorderLayoutD.GridLayout
5-9在下列各种容器中,最简单的无边框的又不能移动和缩放的只能包含在另一种容器中的容器是D
A.WindowB.DialogC.FrameD.Panel
5-10下列关于菜单和对话框的描述中,错误的是C
A.Frame容器是可以容纳菜单组件的容器
B.菜单条中可包含若干个菜单,菜单中又可包含若干菜单项,菜单项中还可包含菜单子项
C.对话框与Frame一样都可作为程序的最外层容器
D.对话框内不含有菜单条,它由Frame弹出
判断题
5-1AWT是抽象窗口工具包的英文缩写。
(对)
5-2容器中只能包含有组件,而不能再含有容器。
(错)
5-3容器分可以独立的窗口和不可以独立的窗口两种。
(对)
5-4单选按钮提供“多选一”的输入选择,下拉列表提供“多选多”的输入选择。
(错)
5-5所有容器的默认布局都是FlowLayout。
(错)
5-6所有的组件都是事件源。
(错)
5-7Java2的事件处理方法是采用委托事件处理模型。
(对)
5-8事件组件都应注册一个事件监听者。
(对)
5-9事件监听者除了得知事件的发生外,还应调用相应方法处理事件。
(对)
5-10所有事件的父类是EventObject类。
(对)
5-11图形用户界面是由用户自定义成分、控制组件和容器组成的。
(对)
5-12所有GUI标准组件类的父类是Component类。
(对)
5-13所有容器类的父类是Frame类。
(错)
5-14标准和按钮都是事件源。
(对)
5-15文本去和文本框都可以引发两种事件:
文本改变事件和动作事件。
(错)
5-16每个复选框有两种状态:
“打开”和“关闭”状态。
(对)
5-17复选框组(CheckboxGroup)是由若干个按钮组成的。
在一组按钮中可选多个。
(错)
5-18列表(List)是由多个选项组成的,只可在列表框的若干个选项选取一个。
(错)
5-19下拉列表(Choice)是一种“多选多”的输入界面。
(错)
5-20滚动条有两类:
水平滚动条和垂直滚动条。
(对)
5-21画布(Canvas)是一种可容纳多个组件的容器。
(错)
5-22所有容器都采用顺序布局(FlowLayout)作为默认布局管理器。
(错)
5-23边界布局(BorderLayout)将容器分为东、西、南、北共4个区域。
(错)
5-24卡片布局(CardLayout)可使容器容纳多个组件,在同一时刻只显示若干个组件中的一个。
(对)
5-25容器可容纳组件和容器,同一个容器中的组件可被同时显示或者同时隐藏。
(对)
5-26所有容器都是有边框的。
(错)
5-27Panel容器是可以嵌套使用的。
(对)
5-28Applet实际是一种特殊的Panel容器。
JavaApplet程序只负责它拥有的Applet容器内的无边框区域。
(对)
5-29窗口(Window)容器是一种独立窗口,但它不能作为程序的最外层容器。
(对)
5-30Frame容器是有边框的容器,它也是一种独立窗口,只能作为最外层容器。
(对)
5-31Frame容器可以容纳菜单组件,它实现了MenuContainer接口。
(对)
5-32MenuComponent类是菜单组件的父类。
(对)
5-33菜单条(MunuBar)、菜单(Munu)、菜单项(MunuItem)是3中不同的菜单组件。
(错)
5-34对话框(Dialog)不是一种独立使用的容器。
(错)
5-35文件对话框(FileDialog)是对话框(Dialog)的子类,它是一种打开文件和保留文件的对话框窗口。
(对)
分析程序输出结果
5-1Exer5_1.java
importjava.applet.*;
importjava.awt.*;
publicclassExer5_1extendsApplet
{
privateLabellab1,lab2;
publicvoidinit()
{
lab1=newLabel();
lab1.setText("标签文本左对齐");
lab1.setAlignment(Label.LEFT);
lab2=newLabel("标签文本右对齐",Label.RIGHT);
setLayout(newGridLayout(3,3));
add(lab1);add(lab2);
}
}
运行改程序后,输出结果如图5-5所示。
图5-5分析题5-1输出结果
5-2Exer5_2.java
importjava.applet.*;
importjava.awt.*;
importjava.awt.event.*;
publicclassExer5_2extendsAppletimplementsActionListener,ItemListener
{
ListcolList;
StringcolName[]={"黑色","蓝色","浅蓝色","绿色","红色","黄色"};
Colorcols[]={Color.black,Color.blue,Color.cyan,Color.green,Color.red,Color.yellow};
intt;
publicvoidinit()
{
colList=newList(4,false);
colList.addActionListener(this);
colList.addItemListener(this);
for(inti=0;icolList.add(colName[i]);
add(colList);
}
publicvoidactionPerformed(ActionEvente)
{}
publicvoiditemStateChanged(ItemEvente)
{
showStatus(colList.getSelectedItem()+";index"+colList.getSelectedIndex());
t=colList.getSelectedIndex();
repaint();
}
publicvoidpaint(Graphicsg)
{
g.setColor(cols[t]);
g.fillRect(15,30,20,20);
}
}
运行改程序后,输出结果如图5-6所示。
5-3Exer5_3.java
importjava.awt.*;
importjava.awt.event.*;
publicclassExer5_3extendsFrameimplementsActionListener
{
Framefr;
Paneldeck;
CardLayoutc1;
Buttonbut[];
Stringname[]={"第一张","下一张","前一张","最末张"};
publicExer5_3()
{
fr=newFrame("卡片窗口");
deck=newPanel();
c1=newCardLayout();
deck.setLayout(c1);
Panelc1=newPanel();
Labellab1=newLabel("卡片1");
c1.add(lab1);
deck.add(c1,lab1.getText());
Panelc2=newPanel();
Labellab2=newLabel("卡片2");
c2.add(lab2);
deck.add(c2,lab2.getText());
Panelc3=newPanel();
Labellab3=newLabel("卡片3");
c3.add(lab3);
deck.add(c3,lab3.getText());
Panelc4=newPanel();
Labellab4=newLabel("卡片4");
c4.add(lab4);
deck.add(c4,lab4.getText());
Panelcontr=newPanel();
contr.setLayout(newGridLayout(2,2));
but=newButton[name.length];
for(inti=0;i{
but[i]=newButton(name[i]);
but[i].addActionListener(this);
contr.add(but[i]);
}
fr.add(contr,BorderLayout.WEST);
fr.add(deck,BorderLayout.EAST);
fr.setSize(300,150);
fr.show();
}
publicvoidactionPerformed(ActionEvente)
{
if(e.getSource()==but[0])
c1.first(deck);
if(e.getSource()==but[1])
c1.next(deck);
if(e.getSource()==but[2])
c1.previous(deck);
if(e.getSource()==but[3])
c1.last(deck);
}
publicstaticvoidmain(Stringargs[])
{
Exer5_3m1=newExer5_3();
}
}
运行该程序后,输出结果如图5-7所示。
5-4Exer5_4.java
importjava.awt.*;
publicclassExer5_4extendsFrame
{
TextFieldtf=newTextField("",30);
MenuBarmb1=newMenuBar();
Menuf=newMenu("文件");
Menum=newMenu("照片");
Menus=newMenu("储存");
Stringname[]={"第一张","下一张","前一张","最末张"};
CheckboxMenuItem[]save={newCheckboxMenuItem("保存"),newCheckboxMenuItem("另存为")};
MenuItem[]file1={newMenuItem("打开"),newMenuItem("关闭")};
MenuBarmb2=newMenuBar();
Menufo=newMenu("水果");
MenuItem[]fruit={newMenuItem("香蕉"),newMenuItem("苹果"),newMenuItem("李子")};
Buttonbut=newButton("Swap");
publicExer5_4()
{
for(inti=0;i{
m.add(newMenuItem(name[i]));
if((i+1)%3==0)
m.addSeparator();
}
for(inti=0;is.add(save[i]);
f.add(s);
for(inti=0;if.add(file1[i]);
mb1.add(f);
mb1.add(m);
setMenuBar(mb1);
tf.setEditable(false);
add("Center",tf);
add("North",but);
for(inti=0;ifo.add(fruit[i]);
mb2.add(fo);
}
publicbooleanhandleEvent(Evente)
{
if(e.id==Event.WINDOW_DESTROY)
System.exit(0);
else
returnsuper.handleEvent(e);
returntrue;
}
publicbooleanaction(Evente,Objectarg)
{
if(e.target.equals(but))
{
MenuBarm=getMenuBar();
if(m==mb1)
setMenuBar(mb2);
elseif(m==mb2)
setMenuBar(mb1);
}
elseif(e.targetinstanceofMenuItem)
{
if(arg.equals("打开"))
{
Stringstr=tf.getText();
Booleanch=false;
for(inti=0;iif(str.equals(name[i]))
ch=true;
if(!
ch)
tf.setText("你按了打开菜单");
else
tf.setText("打开"+str);
}
elseif(e.target.equals(file1[1]))
System.exit(0);
elseif(e.target.equals(save[0]))
tf.setText("你按了保存菜单");
elseif(e.target.equals(save[1]))
tf.setText("你按了另存为菜单");
else
tf.setText(arg.toString());
}
else
returnsuper.action(e,arg);
returntrue;
}
publicstaticvoidmain(Stringargs[])
{
Exer5_4ex=newExer5_4();
ex.setSize(newDimension(200,200));
ex.setVisible(true);
}
}运行该程序后,输出结果如图5-8所示。
5-5Exer5_5.java
importjava.awt.*;
importjava.awt.event.*;
classmyDialogFrameextendsFrameimplementsActionListener
{
MenuItemaboutItem,exitItem;
aboutDialogmyDialog;
publicmyDialogFrame()
{
setSize(300,200);
setTitle("我的联系窗口");
addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEventE){System.exit(0);}});
MenuBarmb=newMenuBar();
setMenuBar(mb);
Menufm=newMenu("练习");
mb.add(fm);
aboutItem=newMenuItem("关于信息");
aboutItem.addActionListener(this);
fm.add(aboutItem);
exitItem=newMenuItem("退出");
exitItem.addActionListener(this);
fm.add(exitItem);
}
publicvoidactionPerformed(ActionEvente)
{
Objectsou=e.getSource();
if(sou==aboutItem)
{
if(myDialog==null)
myDialog=newaboutDialog(this);
myDialog.show();
}
elseif(sou==exitItem)
{System.exit(0);}
}
}
classaboutDialogextendsDialog
{
publicaboutDialog(Frameparent)
{
super(parent,"信息框",true);
Panelp1=newPanel();
TextAreata=newTextArea(10,30);
ta.setText("请写下你的信息");
p1.add(ta);
add("North",p1);
Panelp2=newPanel();
Buttonbut=newButton("返回");
p2.add(but);
add("Center",p2);
but.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){setVisible(false);}});
setSize(300,250);
}
}
publicclassExer5_5
{
publicstaticvoidmain(Stringargs[])
{
Framefr=newmyDialogFrame();
fr.show();
}
}
运行该程序后,输出结果如图5-9所示。
编程题
5-1使用JavaApplet编写满足下列要求的程序:
(1)含有两个按钮和两个标签;
(2)含有文本框和文本区;
(3)含有一个按钮具有退出功能;
编写程序如下:
importjava.awt.*;
importjava.awt.event.*;
classpro5_1extendsWindowAdapterimplicationActionListener
{
Framef;
Labella1,la2;
Buttonb1,b2;
TextFieldtf;
inttag=0;
publicstaticvoidmain(Stringargs[])
{
pro5_1mywin=newpro5_1();
mywin.display();
}
publicvoiddisplay()
{
f=newFrame("我的现实窗口");
la1=newLabel("标签1");
la2=newLabel("标签2");
f.add(la1,"North");
f.add(la2,"West");
b1=newButton("现实字符串");
b2=newButton("退出");
b1.addActionListener(this);
f.add(b1,"South");
b2.addActionListener(this);
f.add(b2,"East");
tf=newTextField();
f.add(tf,"Center");
f.addWindowListener(this);
f.setSize(400,200);
f.setVisible(true);
}
publicvoidactionPerformed(ActionEvente)
{
Strings1="这是一个字符串";
Strings2="这是另一个字符串";
if(e.getActionCommand().equals("退出"))
System.exit(0);
if(tag==0)
{
tf.setText(s1);
tag=1;
}
else
{
tf.setText(s2);
tag=0;
}
}
publicvoidwindowClosing(WindowEvente)
{
System.exit(0);
}
}
运行该程序后,输出结果如图5-10所示。
5-2使用JavaApplication编写满足下列要求的程序。
(1)使用GridLayout布局。
(2)设计一个简单的计算器。
包括数字按钮0~9,以及加、减、乘、除、清零、等于运算按钮和一个现实计算结果的文本区。
请读者参照本书本章5.2程序距离中的例5.1的程序内容进行编写。
5-3编写一个图形用户界面的Application程序。
(1)有一个菜单条;
(2)菜单条中有3个菜