实验4的运行结果如下: 实验5的运行结果如下: 五.试验中遇到的问题及体会 异常指程序在运算时除数为0,或操作数超过范围,或打开一个文件时发现文件并不存在,或欲装入的类文件丢失,或网络连接中断等。而异常处理机制的主要优点是:(1)java通过面向对象的方法进行异常处理,把各种不同的异常处理事件进行分类,体现了良好的层次性,提供了良好的接口。(2)java的异常处理机制使得处理异常的代码和“常规”代码分开,减少了代码的数量,同时增强了程序的可读性。(3)java的异常处理机制使得异常事件可以沿堆栈自动向上传播,而不像C/C++语言中通过函数的返回值来传播,这样可以传递更多的信息并且简化代码的编写。(4)由于把异常事件当成对象来处理,利用类的层次性我们可以把多个具有相同父类的异常统一处理,也可以区分不同的异常分别处理,使用非常灵活。(5)java异常处理机制为具有动态运行特性的复杂程序提供了强有力的控制方式。 在程序的整个运行过程中,实验二,四都比较容易调试,也没出现任何问题,同时在实验三中创建异常类时由于可仿照例6.5进行实验,所以实现起来也相对比较容易,即使如此,我觉得要真正掌握这一部分内容也不是那么容易,所以以后我更应该多去尝试新的题型,希望能彻底把这一部分给掌握了,以至于使所编写的程序更加健壮,完美。 第16页
太原理工大学学生实验报告
学院名称 学生姓名 课程名称 计算机科学与技术 专业班级 实验日期 2011.10.12 学号 成绩 Java语言程序设计 实验题目 图形用户界面 一.实验目的 掌握文本组件,按钮和单,复选按钮组件的使用;掌握列表的使用,鼠标,键盘事件的处理;掌握布局控制的方法。 二.实验内容 (1)编写一个Applet程序响应鼠标事件,当事件发生时,在状态条显示相应的事件信息。提示:使用showStatus(字符串)方法。 (2)完成图8.16所示的GUI布局管理,不需要实现功能。 (3)试设计一窗口,内含一个按钮,开始运行时,按钮显示“Click Me”字样,当按钮按下时,按钮显示为”Click Me Again“字样,再按一次,则按钮显示“Click Me”字样,依次循环。 (4)仿照Windows 2000/XP系统提供扫雷游戏编写一个类似功能和界面的扫雷程序。 (5)编写一个简易文本编辑器,参考界面如图8.17所示。 要求:包含基本的打开,保存,新建等功能,包含菜单,能够对文本的字体类型和颜色进行设置,力求界面美观。 三.程序源代码 (1) import java.awt.*; import java.awt.event.*; public class L08_07 implements MouseMotionListener,MouseListener,WindowListener{ private Frame frm; private TextField tf; public static void main(String args[]){ L08_07_ListenerImpDemo two = new L08_07_ListenerImpDemo(); two.go(); } public void go(){ frm = new Frame(\三个监听器\ frm.add(new Label(\拖曳鼠标\ tf = new TextField(30); frm.add(tf,\使用缺省的布局管理器 frm.addMouseMotionListener(this); //注册监听器MouseMotionListener frm.addMouseListener(this); //注册监听器MouseListener frm.addWindowListener(this); //注册监听器WindowListener frm.setSize(300,200); frm.setVisible(true); } public void mouseDragged(MouseEvent e){//实现mouseDragged方法 实验地点 多学科楼六层606室 第17页
指导教师 相洁 String s = \鼠标当前坐标: X=\ tf.setText(s); } public void mouseMoved(MouseEvent e){}//对其不感兴趣的方法可以方法体为空 public void mouseClicked(MouseEvent e){} public void mouseEntered(MouseEvent e){ String s = \鼠标进入了\ tf.setText(s); } public void mouseExited(MouseEvent e){ String s = \鼠标离开了\ tf.setText(s); } public void mousePressed(MouseEvent e){} public void mouseReleased(MouseEvent e){} public void windowClosing(WindowEvent e){ System.exit(1);//为了使窗口能正常关闭,程序正常退出,需要实现windowClosing方法 } public void windowOpened(WindowEvent e){}//对其不感兴趣的方法可以方法体为空 public void windowIconified(WindowEvent e){} public void windowDeiconified(WindowEvent e){} public void windowClosed(WindowEvent e){} public void windowActivated(WindowEvent e){} public void windowDeactivated(WindowEvent e){} } (2) import java.awt.*; public class L08_02 extends Frame{ static Frame frm=new Frame(\ static Panel pnl=new Panel(new GridLayout(1,4,1,15)); static Panel pn2=new Panel(new GridLayout()); static Panel pn3=new Panel(new GridLayout(5,1)); static Panel pn4=new Panel(new GridLayout(5,1)); static Panel pn5=new Panel(new GridLayout(6,1)); static Panel pn6=new Panel(new GridLayout(6,1)); static Checkbox chb1=new Checkbox(\ static Checkbox chb2=new Checkbox(\ static Checkbox chb3=new Checkbox(\ static Checkbox chb4=new Checkbox(\ static Checkbox chb5=new Checkbox(\ static Checkbox chb6=new Checkbox(\ static Checkbox chb7=new Checkbox(\ static Checkbox chb8=new Checkbox(\ static Checkbox chb9=new Checkbox(\第18页
static Checkbox chb10=new Checkbox(\ static Checkbox chb11=new Checkbox(\ static Checkbox chb12=new Checkbox(\ static Checkbox chb13=new Checkbox(\ static Checkbox chb14=new Checkbox(\ static Checkbox chb15=new Checkbox(\ static Checkbox chb16=new Checkbox(\ static Checkbox chb17=new Checkbox(\ static Checkbox chb18=new Checkbox(\ static Button b1=new Button(\ Filter\ static Button b2=new Button(\ Filter\ static Button b3=new Button(\ static Label lab1=new Label(\ static Label lab2=new Label(\ static Label lab3=new Label(\ static Label lab4=new Label(\ public static void main(String args[]){ frm.setLayout(new BorderLayout(5,5)); TextField text=new TextField(\ CheckboxGroup q1=new CheckboxGroup(); CheckboxGroup q2=new CheckboxGroup(); CheckboxGroup q3=new CheckboxGroup(); CheckboxGroup q4=new CheckboxGroup(); frm.add(\ frm.add(\ pnl.add(pn3); pnl.add(pn4); pnl.add(pn5); pnl.add(pn6); chb1.setCheckboxGroup(q1); chb2.setCheckboxGroup(q1); chb3.setCheckboxGroup(q1); chb4.setCheckboxGroup(q2); chb5.setCheckboxGroup(q2); chb11.setCheckboxGroup(q3); chb12.setCheckboxGroup(q3); chb13.setCheckboxGroup(q3); chb14.setCheckboxGroup(q3); chb15.setCheckboxGroup(q3); chb16.setCheckboxGroup(q4); chb17.setCheckboxGroup(q4); chb18.setCheckboxGroup(q4); pn3.add(lab1); pn3.add(chb1); 第19页
pn3.add(chb2); pn3.add(chb3); pn3.add(text); pn4.add(lab2); pn4.add(b1); pn4.add(b2); pn4.add(chb4); pn4.add(chb5); pn5.add(lab3); pn5.add(chb6); pn5.add(chb7); pn5.add(chb8); pn5.add(chb9); pn5.add(chb10); pn6.add(lab4); pn6.add(chb11); pn6.add(chb12); pn6.add(chb13); pn6.add(chb14); pn6.add(chb15); pn2.add(chb16); pn2.add(chb17); pn2.add(chb18); pn2.add(b3); frm.setSize(600,200); frm.setVisible(true); } } (3)import java.awt.*; import java.awt.event.*; public class L08_03 extends Frame implements MouseListener{ static L08_03 frm=new L08_03(); static Button btn=new Button(\ static int a=0; public static void main(String args[]){ btn.addMouseListener(frm); frm.setLayout(new FlowLayout()); frm.setTitle(\按钮测试\ frm.setSize(300,200); frm.add(btn); frm.setVisible(true); } public void mousePressed(MouseEvent e){} public void mouseReleased(MouseEvent e){} 第20页