版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
选择题
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)、菜单项(Munultem)是3中不同的菜单组件。(错)
5-34对话框(Dialog)不是一种独立运用的容器。(错)
5-35文件对话框(FileDialog)是对话框(Dialog)的子类,它是一种打开文件和保留文件的对话框窗口。(对)
分析程序输出结果
5-1Exer5_l.java
importjava.applet.*;
importjava.awt.*;
publicclassExer5_lextendsApplet
(
privateLabellabl,lab2;
publicvoidinit()
{
labl=newLabel();
labl.setText("标签文本左对齐");
labl.setAlignment(Label.LEFT);
lab2=newLabel("标签文本右对齐”,Label.RIGHT);
setLayout(newGridLayout(3,3));
add(labl);add(lab2);
)
)
运行改程序后,输出结果如图5-5所示。
图5-5分析题5-1输出结果
5-2Exer5_2.java
importjava.applet.*;
importjava.awt.*;
importjava.awt.event.*;
publicclassExer5_2extendsAppletimplementsActionListenerJtemListener
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.addltemListener(this);
for(inti=0;i<colName.length;i++)
colList.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;
CardLayoutcl;
Buttonbut[];
Stringname口={“第一张“,“下一张“,“前一张“,“最末张”};
publicExer5_3()
(
fr=newFrame("卡片窗口”);
deck=newPanel();
c1二newCardLayout();
deck.setLayout(c1);
Panelcl二newPanel();
Labellabl=newLabel。'卡片1");
cl.add(labl);
deck.add(cl,labl.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。卡片4H);
c4.add(lab4);
deck.add(c4,lab4.getText());
Panelcontr=newPanel();
contr.setLayout(newGridLayout(2,2));
but=newButton[name.length];
for(inti=O;i<name.length;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])
cl.first(deck);
if(e.getSource()==but[l])
cl.next(deck);
if(e.getSource()==but[2])
c1.previous(deck);
if(e.getSource()==but[3])
cl.last(deck);
)
publicstaticvoidmain(Stringargs[])
(
Exer5_3ml=newExer5_3();
)
)
运行该程序后,输出结果如图5-7所示。
5-4Exer5_4.java
importjava.awt.*;
publicclassExer5_4extendsFrame
(
TextFieldtf=newTextField("",30);
MenuBarmbl=newMenuBar();
Menuf=newMenu("文件)
Menum=newMenu("照片)
Menus=newMenu("储存)
Stringname[]={"第一张“,“下一张“,“前一张“,"最末张1
CheckboxMenuItem[]save={newCheckboxMenuItem(“保存"),newCheckboxMenuItem("另存为")};
Menultem[]filel={newMenuitem(“打开"),newMenuitem("关闭")};
MenuBarmb2=newMenuBar();
Menufo=newMenu(“水果)
Menultem[]fruit={newMenuitem(“香蕉”),newMenuitem("苹果”),newMenuitem(“李子”)};
Buttonbut=newButton("Swap");
publicExer5_4()
(
for(inti=O;i<name.length;i++)
(
m.add(newMenultem(name[i]));
if((i+l)%3==0)
m.addSeparator();
)
for(inti=O;i<save.length;i++)
s.add(save[i]);
f.add(s);
for(inti=0;i<filel.length;i++)
f.add(filel[i]);
mbl.add(f);
mbl.add(m);
setMenuBar(mb1);
tf.setEditable(false);
add("Center",tf);
add("Northn,but);
for(inti=O;i<fruit.length;i++)
fo.add(fruit[i]);
mb2.add(fo);
)
publicbooleanhandleEvent(Evente)
if(e.id==Event.WINDOW_DESTROY)
System.exit(O);
else
returnsuper.handleEvent(e);
returntrue;
)
publicbooleanaction(Evente,Objectarg)
(
if(e.target.equals(but))
(
MenuBarm=getMenuBar();
if(m==mbl)
setMenuBar(mb2);
elseif(m==mb2)
setMenuBar(mb1);
)
elseif(e.targetinstanceofMenuitem)
(
if(arg.equals(“打开”))
(
Stringstr=tf.getText();
Booleanch二false;
for(inti=O;i<name.length;i++)
if(str.equals(name[i]))
ch=true;
if(!ch)
tf.setText("你按了打开菜单)
else
tf.setText("打开"+str);
}
elseif(e.target.equals(filel[1]))
System.exit(O);
elseif(e.target.equals(save[O]))
tf.setTextC'你按了保存菜单)
elseif(e.target.equals(save[1]))
tf.setText("你按了另存为菜单)
else
tf.setText(arg.toStringO);
)
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
(
Menuitemaboutltem,exititem;
aboutDialogmyDialog;
publicmyDialogFrame()
{
setSize(300,200);
setTitle("我的联系窗口)
addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEventE){System.exit(0);}});
MenuBarmb=newMenuBar();
setMenuBar(mb);
Menufm=newMenu("练习)
mb.add(fm);
aboutltem=newMenuitem("关于信息");
aboutltem.addActionListener(this);
fm.add(aboutltem);
exititem二newMenuitem(“退出”);
exititem,addActionListener(this);
fm.add(exitltem);
)
publicvoidactionPerformed(ActionEvente)
(
Objectsou=e.getSource();
if(sou==aboutltem)
(
if(myDialog==null)
myDialog=newaboutDialog(this);
myDialog.show();
}
elseif(sou==exitltem)
{System.exit(O);}
)
)
classaboutDialogextendsDialog
(
publicaboutDialog(Frameparent)
super(parent,"{§息框",true);
Panelpl=newPanel();
TextAreata=newTextArea(10,30);
ta.setText("请写下你的信息)
pl.add(ta);
add(nNorth",pl);
Panelp2=newPanel();
Buttonbut=newButton("返回)
p2.add(but);
add("Centeru,p2);
but.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){setVisible(false);}});
setSize(300,250);
)
)
publicclassExer5_5
{
publicstaticvoidmain(Stringargs[])
(
Framefr=newmyDialogFrame();
fr.show();
)
)
运行该程序后,输出结果如图5-9所示。
国我的联系畲口-1□!x|
练习
编程题
5-1运用JavaApplet编写满足下列要求的程序:
(1)含有两个按钮和两个标签;
(2)含有文本框和文本区;
(3)含有一个按钮具有退出功能;
编写程序如下:
importjava.awt.*;
importjava.awt.event.*;
classpro5_lextendsWindowAdapterimplicationActionListener
(
Framef;
Labellal,la2;
Buttonbl,b2;
TextFieldtf;
inttag=O;
publicstaticvoidmain(Stringargs[])
pro5_lmywin二newpro5_l();
mywin.display();
publicvoiddisplay()
(
f=newFrame("我的现实窗口”);
lal=newLabel。标签1");
la2=newLabel。标签2");
f.add(lal,"North");
f.add(la2,"Westn);
bl=newButton("现实字符串”);
b2=newButton("退出)
b1.addActionListener(this);
f.add(bl,nSouthn);
b2.addActionListener(this);
f.add(b2,nEastn);
tf=newTextField();
f.add(tf,"Center'1);
f.addWindowListener(this);
f.setSize(400,200);
f.setVisible(true);
}
publicvoidactionPerformed(ActionEvente)
(
Stringsl="这是一个字符串";
Strings2="这是另一个字符串";
if(e.getActionCommand().equals("iM出"))
System.exit(O);
if(tag==O)
(
tf.setText(sl);
tag=l;
)
else
{
tf.setText(s2);
tag=O;
)
)
publicvoidwindowClosing(WindowEvente)
(
System.exit(O);
)
)
运行该程序后,输出结果如图5-10所示。
«我的演示窗口,1□!x|
5-2运用JavaApplication编写满足下列要求的程序。
(1)运用GridLayout布局。
(2)设计一个简洁的计算器。包括数字按钮0~9,以及加、减、乘、除、清零、等于运算按钮和一个现实计算结果
的文本区。
请读者参照本书本章5.2程序距离中的例5.1的程序内容进行编写。
5-3编写一个图形用户界面的Application程序。
(1)有一个菜单条;
(2)菜单条中有3个菜单;
(3)每个菜单有2个菜单项,其中一个菜单项又具有2个菜单子项。
程序内容如下:
importjava.awt.*;
importjava.awt.event.*;
publicclasspro5_3extendsFrameimplementsActionListenerJtemListener
(
TextFieldtext;
publicpro5_3()
(
super("一个联系菜单的窗口");
setSize(300,200);
)
publicvoidinit()
(
MenuBarmyB二newMenuBar();
setMenuBar(myB);
Menuml=newMenu("文件)
ml.add(newMenuitem("保存"));
ml.addSeparator();
ml.add("退出)
ml.addActionListener(this);
myB.add(ml);
Menum2=newMenu("编辑)
m2.add("复制)
m2.addSeparator();
m2.add(“全选)
m2.addActionListener(this);
myB.add(m2);
Menum3=newMenu("插入");
m3.add("页码");
m3.addSeparator();
Menum31=newMenu("图片");
m3Ladd("来自剪贴画)
m31.add("来自图形文件)
m3.add(m31);
m3,addActionListener(this);
myB.add(m3);
text=newTextFieldQ;
add("South",text);
)
publicstaticvoidmain(Stringargs[])
(
pro5_3myMenu二newpro5_3();
myMenu.init();
myMenu.setVisible(true);
)
publicvoiditemStateCharged(ItemEvente)
(
textsetText("状态变更");
)
publicvoidactionPerformed(ActionEvente)
{
text.setText(e.getActionCommand());
if(e.getActionCommand()-="iM出")
System.exit(O);
)
)
运行该程序后,输出结果如图5-11所示。
5-4编写一个可以弹出对话框的程序。
请读者参考本书本章5.2程序举例中的例5.4的程序内容进行编程。
测试题:
1.单选题
5-1下列关于图形用户界面元素的描述中,错误的是()
A.java.Awt包中含有GUI的各类组件
B.容器类(Container)是组件类(Componenet)的一个子类
C.可以向容器中填加组件,不能向容器中填加容器
D.组件在容器中的支配是由布局管理器类来确定的
5-2下列关于事务和事务处理的描述中,错误的是()
A.每个事务源只能发出一种类型的事务
B.事务对象是指某种事务类的对象
C.事务监听者是某种监听者类的对象
D.通常注册当前容器为事务对象的监听者
5-3下列的事务类中,全部事务类的父类是()
A.AWTEvent类B.EventObject类
C.ActionEvent类D.InputEvent类
5-4在AWT组件层次关系图中,属于容器组件的子类的是()
A.ListB.TextAreaC.FrameD.Choice
5-5下列的容器中。没有边框和标题并可以作最顶层容器的是()
A.WindowB.FramC.PanelD.无
2.推断题
5-1容器中的若干组件是由该容器的布局管理器来确定其位置的。
5-2很多事务类都在java.awt.event包中。
5-3容器类(Container)不是组件类(Componenet)的子类。
5-4Window类和Frame类得默认布局管理器都是FlowLayouto
5-5菜单组件包含一个菜单条,每个菜单条又包含若干个菜单项,每个菜单项还可以再含有若干个菜单子项。
3.分析程序的输出结果
5-1程序内容如下:
importjava,awt*;
importjava.awt.event.*;
publicclassTest5_limplementsActionListener
(
Framef;
PopupMenupm;
Buttonbl,b2;
publicstaticvoidmain(Stringargs[])
(
Test5_lmywin=newTest5_l();
mywin.int();
)
Voidint()
(
f=newFram("这是我的窗口");
bl二newButton,'弹出菜单");
b2=newButton("退出");
bl.addActionListener(this);
b2.addActionListener(this);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 借住房屋合同协议格式
- 2024快递合同样本范文
- 2024不锈钢制作合同范本印刷制作的合同范本
- 医学科技与治疗精神疾病考核试卷
- 林木育种中的优良品种选育与推广考核试卷
- 汽车借款短期合同模板
- 小工程无合同范例
- 承包物流公司合同模板
- 废材买卖合同范例
- 法律快车合同范例
- 七年级上册《Module 4 Healthy food》课件
- 天府国际生物城的规划方案
- 2024年国家工作人员学法考法知识考试题库500题(含答案)
- 部编版五年级语文上册《21.古诗词三首》完整
- 化工实训室文化墙
- PHQ-9抑郁症状量表
- 消防设施维保服务投标方案(技术方案)
- 全新光伏工程居间协议2024版
- 产品召回制度
- (高清版)DZT 0130.2-2006 地质矿产实验室测试质量管理规范 第2部分:岩石矿物分析试样制备
- 疆公路沥青路面设计指导手册-最终版
评论
0/150
提交评论