JAVA程序设计案例教程第二周怡张英主编第章习题答案.pdf_第1页
JAVA程序设计案例教程第二周怡张英主编第章习题答案.pdf_第2页
JAVA程序设计案例教程第二周怡张英主编第章习题答案.pdf_第3页
JAVA程序设计案例教程第二周怡张英主编第章习题答案.pdf_第4页
JAVA程序设计案例教程第二周怡张英主编第章习题答案.pdf_第5页
已阅读5页,还剩6页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

习题习题 8 8 一、选择题 1下面 C 不是容器类。 .JPanel.JFrame.Canvas.JApplet 解析:JPanel 是个无边框的中间层容器;JFrame(容器)扩展 java.awt.Frame 的外部窗体; java.awt包提供我们一个组件: Canvas画布(不是容器),它是一个可以在上面绘画的简单组件; Swing 提供的顶层容器类之一:JApplet 小应用程序。 2JFrame 默认的布局管理器是 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 。 .下拉式菜单.菜单栏.菜单项.常规菜单 解析:有了菜单栏,才有菜单项,很多菜单项才会有下拉式菜单。 6ActionListener 是 C 监听器接口。 .键盘事件.鼠标事件.动作事件.调整事件 解析:动作事件,例如用鼠标单击命令式按钮。 7所有事件类的父类是 B 。 .ActionEvent.AwtEvent.KeyEvent.MouseEvent 解析:类 java.awt.AWTEvent 提供处理由 AWT 组件所激发的各类事件的接口和类。 8下列关于容器的描述中, A 是错误的。 .容器是由若干个组件和容器组成的。 .容器是对图形界面中界面元素的一种管理方式 .容器可以是一种指定宽和高的矩形范围 .容器可以是独立存在的窗口 解析:容器里面可以有容器,组件是放在容器里的,容器可以独立存在。 9在对下列语句的解释中,错误的是 D 。 Button1.addActionListener(this); AButton1 是某种事件对象 Bthis 表示当前容器 CActionListener 是动作事件的监听者 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 主要用 来设计图形应用程序; 4Java 的坐标系统原点(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 implementsActionListener /监听器接口 public void actionPerformed(ActionEvent e) int n,i; n=Integer.parseInt(t1.getText(); for(i=n-1;i1;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;cMyNumber;c+) /绘制3个周期, for(int i=0;ipr_x.length-1;i+)/绘制P波,对数组中的两点间一一画 直线 g.drawLine(pr_xi+c*160,pr_yi,pr_xi+1+c*160,pr_yi+1);/向右平移 160像素 for(int i=0;iqrs_x.length-1;i+)/绘制QRS波 g.drawLine(qrs_xi+c*160,qrs_yi,qrs_xi+1+c*160,qrs_yi+1); for(int i=0;it_x.length-1;i+)/绘制T波 g.drawLine(t_xi+c*160,t_yi,t_xi+1+c*160,t_yi+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设计一个简单的计算器,包括数字按钮 09,以及加、减、乘、除、清零、等于运算按 钮和一个显示计算结果的文本区。 import java.applet.*; import java.awt.*; import java.awt.event.*; public class JiSuan extends Applet implements ActionListener Button buts; String names= “0“,“1“,“2“,“3“

温馨提示

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

评论

0/150

提交评论