Java程序设计案例教程(第二版)周怡、张英主编第8章习题答案_第1页
Java程序设计案例教程(第二版)周怡、张英主编第8章习题答案_第2页
Java程序设计案例教程(第二版)周怡、张英主编第8章习题答案_第3页
Java程序设计案例教程(第二版)周怡、张英主编第8章习题答案_第4页
Java程序设计案例教程(第二版)周怡、张英主编第8章习题答案_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

习题习题 8 8 一 选择题 1 下面 C 不是容器类 JPanel JFrame Canvas JApplet 解析 JPanel 是 个无边框的中间层容器 JFrame 容器 扩展 java awt Frame 的外部窗体 java awt 包提供我们一个组件 Canvas 画布 不是容器 它是一个可以在上面绘画的简单组件 Swing 提供的顶层容器类之一 JApplet 小应用程序 2 JFrame 默认的布局管理器是 A BorderLayout FlowLayout null GridLayout 解析 对于 JFrame 和 JWindow 这样的顶层框架来说 默认的布局管理器是边界布局 BorderLayout 3 要使一组 JRadioButton 类对象具有单选性质 必须使用 C 类 JButton JButtonGroup ButtonGroup JPanel 解析 JRadioButton 组件实现一个单选按钮 用户可以很方便地查看单选按钮的状态 JradioButton 类可以单独使用 也可以与 ButtonGroup 类联合使用 当单独使用时 该单选 按钮可以被选定和取消选定 当与 ButtonGroup 类联合使用时 则组成了一个单选按钮组 此时用户只能选定其中的一个单选按钮 取消选定的操作由 ButtonGroup 类自动完成 4 在其他方法中要调用 paint 方法 可以通过使用 D 方法来实现 构造 super paint repaint 解析 C 不是其他方法 repaint 方法一定会调用 paint 5 要在 JFrame 上添加菜单 首先应添加 B 下拉式菜单 菜单栏 菜单项 常规菜单 解析 有了菜单栏 才有菜单项 很多菜单项才会有下拉式菜单 6 ActionListener 是 C 监听器接口 键盘事件 鼠标事件 动作事件 调整事件 解析 动作事件 例如用鼠标单击命令式按钮 7 所有事件类的父类是 B ActionEvent AwtEvent KeyEvent MouseEvent 解析 类 java awt AWTEvent 提供处理由 AWT 组件所激发的各类事件的接口和类 8 下列关于容器的描述中 A 是错误的 容器是由若干个组件和容器组成的 容器是对图形界面中界面元素的一种管理方式 容器可以是一种指定宽和高的矩形范围 容器可以是独立存在的窗口 解析 容器里面可以有容器 组件是放在容器里的 容器可以独立存在 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 add MyLabel1 MyLabel2 new JLabel 标签标签2 add MyLabel2 MyButton1 new JButton 按钮按钮1 add MyButton1 MyButton2 new JButton 按钮按钮2 add MyButton2 public static void main String args Code1 f new Code1 2 使用 Eclipse 编写一个图形界面 含有一个按钮 该按钮具有退出功能 import javax swing import java awt event public class Code2 extends JFrame public Code2 super 退出 setBounds 50 50 300 300 setLayout null setVisible true JButton MyButton new JButton 退出 add MyButton MyButton setBounds 100 100 100 100 MyButton addActionListener new MyButton 添加监听 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 诊疗操作 jMenuItem21 new JMenuItem jMenuItem21 setText 检查 jMenuItem22 new JMenuItem jMenuItem22 setText 诊疗 jMenu2 add jMenuItem21 jMenu2 add jMenuItem22 return jMenu2 private JMenu getJMenu3 if jMenu3 null jMenu3 new JMenu jMenu3 setText 打印 jMenuItem31 new JMenuItem jMenuItem31 setText 检查单 jMenuItem32 new JMenuItem jMenuItem32 setText 处方 jMenu3 add jMenuItem31 jMenu3 add jMenuItem32 return jMenu3 private JMenuItem getJMenuItem1 初始化菜单 jMenu1 中的菜单项 jMenuItem1 if jMenuItem1 null jMenuItem1 new JMenuItem jMenuItem1 setText 当前患者信息 设置菜单项 jMenuItem1 的标题 return jMenuItem1 public static void main String args 主方法 SwingUtilities invokeLater new Runnable public void run Code3 thisClass new Code3 生成一个 Code3 类的对象 thisClass setDefaultCloseOperation JFrame EXIT ON CLOSE thisClass setVisible true public Code3 Code3 类的构造方法 super initialize private void initialize 初始化框架窗口 this this setSize 300 200 this setJMenuBar getJJMenuBar 添加菜单栏到框架窗口 this 上 this setContentPane getJContentPane 获取窗口的内容面板 this setTitle 儿科门诊医生诊疗操作 设置框架窗口标题 private JPanel getJContentPane 初始化框架窗口的内容面板 jContentPane if jContentPane null jContentPane new JPanel jContentPane setLayout null 设置内容面板布局为 null return jContentPane 4 编写一个图形界面程序 通过文本框输入一个整数 判断该数是否为素数 判断结果用 一个标签显示出来 界面上包括一个文本框用于接受用户输入 两个标签 一个命令按钮 import java awt import javax swing import java awt event public class Code4 extends JFrame JTextField t1 new JTextField 123 JLabel L1 new JLabel public Code4 super 第 4 题 setBounds 50 50 300 120 setLayout new GridLayout 4 1 setVisible true add new JLabel 请在文本框中输入一个短整型的整数 add t1 add L1 JButton B1 new JButton 判断素数 add B1 B1 addActionListener new B1 添加监听 class B1 implements ActionListener 监听器接口 public void actionPerformed ActionEvent e int n i n Integer parseInt t1 getText for i n 1 i 1 i if n i 0 break if i 1 n 1 L1 setText n 是素数 else L1 setText n 不是素数 它能被 i 整除 public static void main String args Code4 f new Code4 5 修改例 8 12 在窗口上添加一个文本框和一个命令按钮 在文本框中输入需绘制的周期 数 通过单击命令按钮 绘制出指定周期数的心电图曲线 import java awt import java awt event import javax swing public class Code5 extends WindowAdapter implements ActionListener JButton b1 null JTextField t2 null public Code5 JFrame f new JFrame Code5 Container contentPane f getContentPane contentPane setLayout new GridLayout 1 2 b1 new JButton 绘制周期数 t2 new JTextField 2 b1 addActionListener this contentPane add b1 contentPane add t2 f pack f show f addWindowListener this public void actionPerformed ActionEvent e ActionEvent类继承了EventObject类的 getActionCommand 方法 if e getActionCommand equals 绘制周期数 getActionCommand 方法会返回按钮上的文字字符串 HeartBeatCurve newF new HeartBeatCurve HeartBeatCurve MyNumber Integer parseInt t2 getText newF setSize 1024 500 newF show public static void main String args new Code5 import javax swing 引入javax swing包 import java awt public class HeartBeatCurve extends JFrame 定义继承自JFrame的类 public static int MyNumber public HeartBeatCurve JFrameDemo类的构造方法 super 简化的正常心脏震动曲线 调用父类的构造方法设置窗口标题 setBounds 50 50 750 500 设置窗口在屏幕上出现的位置 窗口大小 setDefaultCloseOperation EXIT ON CLOSE 设置单击 按钮时关闭窗口 setVisible true 设置窗口可见 默认是不可见的 在HeartBeatCurve类的成员变量定义处定义如下几个成员变量 P波起点a的坐标定位在 100 360 处 int x 100 y 360 P波各关键点坐标 int pr x x x 20 x 30 x 40 x 45 x 50 x 55 x 60 x 66 x 70 int pr y y y 14 y 20 y 23 y 24 y 23 y 22 y 19 y 10 y QRS波关键点坐标 int qrs x x 70 x 78 x 90 x 92 x 95 x 97 x 100 int qrs y y y 174 y 10 y y 10 y 8 y T波关键点坐标 int t x x 100 x 110 x 115 x 130 x 135 x 140 x 145 x 150 x 155 x 158 x 160 int t y y y 6 y 10 y 22 y 27 y 30 y 31 y 28 y 20 y 10 y 重写paint 方法 public void paint Graphics g super paint g 调用父类构造方法 以便画背景 g setColor Color red 设置绘图颜色为红色 for int c 0 c MyNumber c 绘制3个周期 for int i 0 i pr x length 1 i 绘制P波 对数组中的两点间一一画 直线 g drawLine pr x i c 160 pr y i pr x i 1 c 160 pr y i 1 向右平移 160像素 for int i 0 i qrs x length 1 i 绘制QRS波 g drawLine qrs x i c 160 qrs y i qrs x i 1 c 160 qrs y i 1 for int i 0 i t x length 1 i 绘制T波 g drawLine t x i c 160 t y i t x i 1 c 160 t y i 1 g drawLine x y 58 x 500 y 58 画3条水平线 g drawLine x y 210 x 500 y 210 g drawLine x y 80 x 500 y 80 g setColor Color black 设置标识文字的颜色为黑色 g setFont new Font 宋体 java awt Font BOLD 16 设置标识文字的 字体字号 g drawString 0g x 70 y 58 绘制标识文字 g drawString 1 5g x 70 y 210 g drawString 1 5g x 70 y 80 g drawString 姓名 张力 x 520 y 260 g drawString 200ms div x 520 y 240 g drawString 1 5g x 520 y 220 g drawString 直流 x 520 y 200 g drawString 10Hz x 520 y 180 g drawString 导联关I导联 x 520 y 160 g setFont new Font 黑体 java awt Font BOLD 20 g drawString 名称 期前收缩 代偿间歇 x 120 y 280 public static void main String args HeartBeatCurve f new HeartBeatCurve 声明对象f 即框架窗口 6 设计一个简单的计算器 包括数字按钮 0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论