Java程序设计案例教程(第二版)周怡、张英主编 第8章习题答案

发布时间 : 星期二 文章Java程序设计案例教程(第二版)周怡、张英主编 第8章习题答案更新完毕开始阅读

习题8

一、选择题

1.下面 C 不是容器类。

A.JPanel B.JFrame C.Canvas D.JApplet

解析:JPanel是—个无边框的中间层容器;JFrame(容器)扩展java.awt.Frame的外部窗体;java.awt包提供我们一个组件: Canvas画布(不是容器),它是一个可以在上面绘画的简单组件;Swing提供的顶层容器类之一:JApplet小应用程序。 2.JFrame默认的布局管理器是 A 。

A.BorderLayout B.FlowLayout C.null D.GridLayout 解析:对于JFrame和JWindow这样的顶层框架来说,默认的布局管理器是边界布局(BorderLayout)。

3.要使一组JRadioButton类对象具有单选性质,必须使用 C 类。

A.JButton B.JButtonGroup C.ButtonGroup D.JPanel

解析:JRadioButton组件实现一个单选按钮,用户可以很方便地查看单选按钮的状态。JradioButton类可以单独使用,也可以与ButtonGroup类联合使用。当单独使用时,该单选按钮可以被选定和取消选定;当与ButtonGroup类联合使用时,则组成了一个单选按钮组,此时用户只能选定其中的一个单选按钮,取消选定的操作由ButtonGroup类自动完成。 4.在其他方法中要调用paint方法,可以通过使用 D 方法来实现。

A.构造 B.super C.paint D.repaint 解析:C不是其他方法;repaint() 方法一定会调用paint。 5.要在JFrame上添加菜单,首先应添加 B 。

A.下拉式菜单 B.菜单栏 C.菜单项 D.常规菜单 解析:有了菜单栏,才有菜单项,很多菜单项才会有下拉式菜单。 6.ActionListener是 C 监听器接口。

A.键盘事件 B.鼠标事件 C.动作事件 D.调整事件 解析:动作事件,例如用鼠标单击命令式按钮。 7.所有事件类的父类是 B 。

A.ActionEvent B.AwtEvent C.KeyEvent D.MouseEvent 解析:类java.awt.AWTEvent提供处理由 AWT 组件所激发的各类事件的接口和类。 8.下列关于容器的描述中, A 是错误的。

A.容器是由若干个组件和容器组成的。

B.容器是对图形界面中界面元素的一种管理方式 C.容器可以是一种指定宽和高的矩形范围 D.容器可以是独立存在的窗口

解析:容器里面可以有容器,组件是放在容器里的,容器可以独立存在。 9.在对下列语句的解释中,错误的是 D 。 Button1.addActionListener(this); A.Button1是某种事件对象 B.this表示当前容器

C.ActionListener是动作事件的监听者

D.该语句的功能之将Button1对象注册为this对象的监听者

解析: A.add***Listener(B)。在此将B对象注册为A对象的监听者。A为事件的对象,B为容纳该事件的容器

二、判断题?

1.容器中只能包含有组件,而不能再包含有容器。(?) 解析:容器中可以包含容器,但组件放在容器中。 2.所有的组件都是事件源。(?)

解析:产生事件的组件就是一个事件源,不是所有组件都是。 3.事件组件都应注册同一个事件监听者。(?)

解析:应注册一个,但是否注册同一个事件监听者是视情况而定的。 4.所有事件类的父类是EventObject。(?)

解析:java.util.EventObject是所有事件类的父类;java.awt.AWTEvent是所有AWT事件类的父类,其包括低级事件和基于语义的高级事件。 5.标签和按钮都可以是事件源。(?)

6.事件监听者除了得知事件的发生外,还应调用相应方法处理事件。(?) 三、填空题

1.设计和实现图形用户界面的工作主要有创建组件、指定布局和响应事件3个方面。 解析:设计和实现图形用户界面的工作主要有以下3 个方面。 创建组件(Component):创建组成图形用户界面的各种元素。例如,文本框、标签、按钮、单选按钮、复选框、图片、菜单、对话框等。 指定布局(Layout):设置各个组件在图形用户界面中的相应位置。 响应事件(Event):定义当用户进行某些操作时,程序的执行情况,从而实现图形用户界面的人机交互功能。例如,当单击按钮、拖动鼠标或者在文本框中输入文字时,程序的反应。程序的反应结果一般也是通过图形用户界面显示出来。

2.在Java语言中通常用java.awt包或者javax.swing包中的类来实现图形用户界面。 3.在Swing中常用的3个顶层容器类是JFrame、JDialog和JApplet。

解析:小应用程序(JApplet)、对话框(JDialog)、框架(JFrame)是Swing中的三种顶层容器,JApplet主要用于设计嵌入网页的程序,JDialog用来设计有依赖关系的窗口,JFrame主要用来设计图形应用程序;

4.Java的坐标系统原点(0,0)位于屏幕的左上角,X轴向右水平延伸,Y轴向下垂直延伸,坐标以像素为单位。

5.事件的产生者称为事件源。

6.事件源本身并不处理事件,而是由事件监听器(监听器)来处理,这种处理方式称为委托模式。

7.常用的菜单形式有两种。一种是常规菜单,另一种是弹出式菜单。 解析:工具栏上的是常规菜单,按右键弹出的菜单是弹出式菜单。 四、简答题

1.图形用户界面与字符界面有什么不同?

答:图形界面相当于在电脑上画图,然后把数据以图形的方式显示,就像Windows界面,图形界面可以用swing等做。字符界面只有字符的编码,DOS就是字符界面。 2.简述设计java图形用户界面程序的主要步骤。

答:首先:创建组件(Component):创建组成图形用户界面的各种元素。例如,文本框、标签、按钮、单选按钮、复选框、图片、菜单、对话框等;其次:指定布局(Layout):设置各个组件在图形用户界面中的相应位置;最后:响应事件(Event):定义当用户进行某些操作时,程序的执行情况,从而实现图形用户界面的人机交互功能。例如,当单击按钮、拖动鼠标或者在文本框中输入文字时,程序的反应。程序的反应结果一般也是通过图形用户界面显示出来。 3.什么是容器?什么是组件?

答:可以盛放其他组件的类或对象称为容器,不能盛放其他对象的是组件,容器是用来存放

组件的。打个比方,容器就好像杯子,组件就好像水,大杯子里还可以放些小杯子,而水是放杯子里的。

4.什么是Java事件?简述Java的事件处理机制。

答:Java事件是可以被控件识别的操作,如按下确定按钮,选择某个单选按钮或者复选框。Java的事件处理机制:Java中当事件发生时,他不会进行广播,而是仅仅向关心此事件的对象发送消息。那么他怎么知道谁“关心”此事件呢。这就要求关心此事件的对象,先行向事件的发出方进行注册,表示我关心此事件,当事件发生时请通知我。简单来说:就是事件的“处理方”向事件的“发出方”先行注册,当事件发生时,事件的“发生方”负责通知事件的“处理方”来“处理”。 五、编程题

1.使用Eclipse编写一个图形界面,含有两个按钮和两个标签,界面使用网格布局。 import java.awt.*; import javax.swing.*; public class Code1 extends JFrame { } private JLabel MyLabel1,MyLabel2; private JButton MyButton1,MyButton2; public Code1(){ super(\网格布局\setBounds(50,50,300,120); setLayout(new GridLayout(2,2)); setVisible(true); MyLabel1=new JLabel(\标签1\MyLabel2=new JLabel(\标签2\MyButton1=new JButton(\按钮1\ MyButton2=new JButton(\按钮2\} public static void main(String[] args) { Code1 f=new Code1(); } 2.使用Eclipse编写一个图形界面,含有一个按钮,该按钮具有退出功能。 import javax.swing.*; import java.awt.event.*; public class Code2 extends JFrame{ JButton MyButton=new JButton(\退出\); add(MyButton); MyButton.setBounds(100,100,100,100); MyButton.addActionListener(new MyButton());//添加监听 public Code2(){ super(\退出\); setBounds(50,50,300,300); setLayout(null); setVisible(true); } } class MyButton implements ActionListener {//监听器接口 public void actionPerformed(ActionEvent e) { System.exit(0); //退出系统 } } public static void main(String[] args) { Code2 f=new Code2(); } 3.编写一个用户界面的Application程序:有一个菜单条,菜单条中有3个菜单。 import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.JMenu; public class Code3 extends JFrame { //定义内容面板、菜单栏、菜单、菜单项等成员变量 private JPanel jContentPane = null; private JMenuBar jJMenuBar = null; private JMenu jMenu1 = null,jMenu2 = null,jMenu3 = null; private JMenuItem jMenuItem1 = null; private JMenuItem jMenuItem21 = null,jMenuItem22 = null; private JMenuItem jMenuItem31 = null,jMenuItem32 = null; private JMenuBar getJJMenuBar() { //初始化菜单栏jJMenuBar if (jJMenuBar == null) { jJMenuBar = new JMenuBar(); jJMenuBar.add(getJMenu1()); //在菜单栏jJMenuBar上添加菜单项jMenu1 jJMenuBar.add(getJMenu2()); jJMenuBar.add(getJMenu3()); } return jJMenuBar; } private JMenu getJMenu1() { //初始化菜单jMenu1 if (jMenu1 == null) { jMenu1 = new JMenu(); jMenu1.setText(\患者资料\ //设置菜单jMenu1的标题 jMenu1.add(getJMenuItem1()); //在菜单jMenu1上添加菜单项jMenuItem1 } return jMenu1; } private JMenu getJMenu2() { if (jMenu2 == null) { jMenu2 = new JMenu(); jMenu2.setText(\诊疗操作\

联系合同范文客服:xxxxx#qq.com(#替换为@)