您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 资本运营 > Java程序设计实用教程习题答案
《Java程序设计精典教程》习题答案编著:胡伏湘,雷军环清华大学出版社第5章习题解答一、简答题1.什么是AWT?AWT的基本思想是什么?答:AWT(抽象窗口工具包)是一组应用程序接口(API),其中包括各种Java程序员用来创建图形用户界面(GUI)的类,这些类分别对应着Java图形用户界面的构成成份:组件和容器。组件通常为图形用户界面中的可见部分,例如按钮(button)和标签(label)等。容器是图形用户界面中容纳其他组件的部分,一个容器中可以容纳一个或多个组件,甚至还可以容纳其他的容器。AWT的基本思想是将图形用户界面(GUI)看作一系列嵌套的构件,最外层是窗口这样的容器,容器内又可以包含其他的组件和容器。这样由表及里,所有的构件构成了一个嵌套的树,一个构件在这棵树中的位置决定了它显示在屏幕上的位置以及事件的传递途径。2.容器主要有哪些作用?Java中有哪些常见的容器。它们之间有什么异同?答:容器组件的主要作用是包容其他组件或容器并按一定的方式组织排列它们,同一个容器的所有构件通常总是同时被显示和同时被隐藏的。Java中常见的容器有Frame(框架)、Panel(面板)和Applet框架Frame是一个带有边框的独立的窗口,可以移动、放大、缩小、关闭。是独立于Applet和浏览器的一个窗口,是Application程序最外层的容器。面板是包含在窗口中的一个不带边框的区域。不是一个单独的窗口,它只是包含在窗口中的一个区域,是可以将许多组件组合起来的一种容器,必须将面板添加到窗体中才能正常显示出来。Applet也是无边框的容器,是Applet程序最外层的容器。3.布局管理器的作用是什么?Java提供了哪几种布局管理器?答:布局管理器用来控制组件在容器中的摆放位置。Java提供了5种布局管理器,它们是:顺序布局管理器(FlowLayout)、边界布局管理器(BorderLayout)、网格布局管理器(GridLayout)、卡片布局管理器(CardLayout)、网格包布局管理器(GridBagLayout)4.设计和实现图形用户界面的主要工作有哪些?答:设计和实现图形用户界面的工作主要有两个:一是创建组成界面的各种容器和组件,指定它们的属性和位置关系,根据具体需要排列它们,从而构成完整的图形用户界面的物理外观;二是定义图形用户界面的事件和各界面元素对不同事件的响应,从而实现图形用户与用户的交互功能。5.简述事件对象、事件源、监听者的概念?答:这三个概念的基本念义如下:事件对象:通常当用户在用户接口上进行某种操作时,如按下键盘上某个键或移动鼠标,均会引发一个事件。事件对象是用来描述所发生事件相关信息的对象,对应用户操作的不同种类有不同类型的事件类(对象)与之对应。事件源:是指一个事件的产生者。例如,当在一个按纽(Button)上单击鼠标时就会产生一个ActionEvent的事件对象,事件源就是该按纽。通过ActionEvent对象的有关方法可以获得该事件的有关信息,事件监听器:用来调用事件处理方法的对象。6.JDK1.1的事件处理机制是什么?其原理是什么?答:JDK1.1的事件处理机制采用委托事件模型来处理事件。委托事件模型的原理如下:确定事件源。图形界面的每个可能产生事件的组件称为事件源,不同事件源上发生的事件的种类不同。注册事件源。如果希望事件源上发生的事件被程序处理,就要把事件源注册给能够处理该事件源上那种类型的事件监听者。监听者是属于一个类的实例,这个类实现了一个特殊的接口,名为“监听者接口”。委托处理事件。当事件源上发生监听者可以处理的事件时,事件源把这个事件作为实际参数传递给监听者中负责处理这类事件的方法,该方法根据事件对象中封装的信息来确定如何响应这个事件。二、编程题1.编写代码,创建标题为“基本GUI”编程的窗口。参考代码如下:importjava.awt.*;classNewFrameextendsFrame{publicstaticvoidmain(Stringargs[]){NewFramemainFrame=newNewFrame();mainFrame.setTitle(基本GUI编程);mainFrame.setSize(200,200);mainFrame.setVisible(true);}}2.编写代码,创建标题为“使用面板的基本GUI编程”的面板。参考代码如下:importjava.awt.*;classNewPanelextendsPanel{publicstaticvoidmain(Stringargs[]){NewPanelnp=newNewPanel();Framef=newFrame(使用面板的基本GUI编程!);f.add(np);f.setSize(300,200);f.setVisible(true);}}3.创建一个窗口,包括一个标签、一个文本框和一个按钮,当用户单击按钮时,程序把文本框中的内容复制到标签中。请使用两种以上的布局管理器布局窗口的组件。参考代码如下:importjava.awt.*;importjava.awt.event.*;publicclassCopyTextextendsFrameimplementsActionListener{Panelp;Labell;TextFieldt;Buttonb;publicCopyText(){p=newPanel();l=newLabel();l.setBackground(Color.BLUE);t=newTextField(20);b=newButton(复制文本);p.add(t);p.add(l);add(Center,p);add(South,b);b.addActionListener(this);//给按钮注册活动事件监听器setVisible(true);this.setTitle(文本复制示例);setSize(400,200);pack();}publicvoidactionPerformed(ActionEvente){if(e.getSource()==b){l.setText(t.getText());}}publicstaticvoidmain(Stringargs[]){CopyTextct=newCopyText();}}4.编写一个程序,创建一个AWT面板,该面板包含标有三个不同颜色名称的三个按钮,单击每个按钮时应使窗口的背景色显示为相应的颜色。importjava.awt.*;importjava.awt.event.*;classChangeBgColorextendsFrameimplementsActionListener{Panelp;Buttonbtn1,btn2,btn3;ChangeBgColor(){p=newPanel();btn1=newButton(红色);btn2=newButton(蓝色);btn3=newButton(黄色);this.add(p);p.add(btn1);p.add(btn2);p.add(btn3);btn1.addActionListener(this);btn2.addActionListener(this);btn3.addActionListener(this);}publicstaticvoidmain(Stringargs[]){ChangeBgColormainFrame=newChangeBgColor();mainFrame.setTitle(基本GUI编程);mainFrame.setSize(200,200);mainFrame.setVisible(true);}publicvoidactionPerformed(ActionEvente){if(e.getSource()==btn1){p.setBackground(Color.red);}elseif(e.getSource()==btn2){p.setBackground(Color.blue);}elsep.setBackground(Color.yellow);}}第6章习题解答一、简答题1.说明文本框和标签之间的区别?答:文本框定义了一个单行条形文本区,可以输出任何基于文本的信息,也可以接受用户的输入,并有事件响应。标签可以显示一行静态的文本,它只起信息说明作用,不接受用户的输入,无事件响应。2.试列举Java中常用的基本控制组件。如果有二到三种取值可能,采用哪种组件合适?如果取值的可能大于5种,采用哪种组件合适?答:基本控制组件是图形用户界面的最小单位之一,它里面不再包含其他成分。基本控制组件的作用是完成与用户的一次交互。目前常用的基本控制组件有:标签(Label)、文本编辑区(TextField、TextArea)、按钮(Button)、复选框(Checkbox)、单选按钮(CheckboxGroup、Checkbox)、下拉列表(List或Choice)。如果这两到三种取值是互斥的话,采用单选按钮表示比较合适,否则采用复选按钮表示;如果5种以上的取值只能多选一的话,采用Choice下拉列表,否则采用List下拉列表。3.什么是选择事件?可能产生选择事件的GUI组件有哪些?答:选择事件是当选择项的选中状态发生变化时所引起的事件。可能产生选择事件的GUI组件有下拉列表类(Choice)、列表类(List)复选按钮类(CheckBox)、检测盒菜单项(CheckboxMenuItem)4.设计一个菜单的步骤是什么?答:设计菜单的步骤是:用MenuBar构造函数构造菜单栏对象。用Menu构造函数构造菜单对象。用MenuItem构造函数构造菜单项对象。用Menu类的add方法将菜单项加入菜单中。用MenuBar类的add方法将菜单加菜单栏中。用Frame类的setMenuBar方法将菜单栏加入窗口中。5.有模式的对话框最突出的特点是什么?如果一个对话框的目的在于警告或提醒用户(例如删除数据库记录的确认),这个对话框应该是有模式的还是无模式的?答:有模式对话框是指打开后必须作出响应的对话框。如果一个对话框的目的在于警告或提醒用户,应该为有模式的对话框。6.Swing组件与AWT组件的区别是什么?答:AWT组件是JDK1.0和1.1平台用于开发GUI的工具,尽管Java2平台仍然支持AWT组件,但是,使用Swing组件来开发GUI已经成为一种发展趋势。为了标识Swing组件,Swing组件的在其名称前冠以J字母,例如,在AWT中的Button类,在Swing中为JButton。另外,AWT存在于java.awt包中,Swing组件存在于javax.swing包中。Swing组件与AWT组件的最大不同是:Swing组件完全由Java语言实现,功能更强大,而AWT而不是。Swing组件还提供了AWT组件无法实现的功能:Swing按钮类和标签类除了显示文本标题,还可以显示图形标题Swing容器可以加边框Swing组件可以自动适应操作系统的外观,而AWT组件总是保持相同的外观Swing组件可以设计成圆形,而不一定是矩形通过Swing组件的方法改变其外观和形为不能在Swing的顶层容器(如JApplet、JFrame)直接加入组件,而要先获得容器,再在容器中加入组件。二、编程题1.如图6-17所示。标签1的字号比文本框的字号大,当单击按钮时若输入文框中的数正确,则标签2文本显示正确,否则显示不正确。图6-17参考代码如下:importjava.awt.*;importjava.awt.event.*;publicclassprogram1extendsFrameimplementsActionListener{6+9=15正确OK标签1标签2文本框Labellb1=newLabel(6+9=);Labellb2=newLabel();TextFieldtf=newTextField(3);Buttonbt=newBu
本文标题:Java程序设计实用教程习题答案
链接地址:https://www.777doc.com/doc-2878805 .html