组件与事件编程-Java实验报告(三) 下载本文

甘肃政法学院

本科学生实验报告

( 三 )

姓名 贾燚 学院 计算机科学学院 专业 信息管理与信息系统 实验课程名称 Java 实用教程 试验时间 2011年 10 月 4日

指导教师及职称 李瑞生 实验成绩 开课时间 2011 学年 第2 学期

甘肃政法学院实验管理中心印制

实验题目 组件与事件编程 10级信管班 小组合作 是○ 否 ☉ 学 号 201081020108 姓 名 贾燚 班 级 一、实验目的: 1、掌握java 图形用户界面设计常用类及其各自重要方法的应用。 2、掌握java 事件处理模式并熟练掌握文本框上事件处理的方法。 3、进一步掌握java AWT组件、Swing组件及事件编程的各种方法。 4、掌握对话框的编制和事件处理方法。 5、掌握鼠标焦点事件、鼠标事件及键盘事件的处理方法。 二、实验环境: 装有Myeclipse 8.5的计算机一台 三、实验内容与步骤: 1、算术测试 1)进入Myeclipse 8.5界面,依次选择File—>New—>Java Project命令,打开新建项目向导,在“Project name”栏中输入项目名“Jy001”,单击“Finish”按钮 2)右击项目“Jy001”,选择“New—>Package”,在“Name”栏中输入包名“org.circle”,单击“Finish”按钮完成包的创建 3)右击项目“Jy001”的包“org.circle”,选择“New—>Class”,在“Name”栏中输入类名“Teacher”,单击“Finish”按钮完成类的创建 4)双击“Teacher.java”,编辑以下代码: public class Teacher { int numberOne,numberTwo; String operator=\ boolean right; public int giveNumberOne(int n) { numberOne=(int)(Math.random()*n)+1; return numberOne; } public int giveNumberTwo(int n) { numberTwo=(int)(Math.random()*n)+1; return numberTwo; } public String giveOperator() { double d=Math.random(); if(d>=0.5) operator=\ else operator=\ return operator; } public boolean getRight(int answer) { if(operator.equals(\ { if(answer==numberOne+numberTwo) right=true; else right=false; } else if(operator.equals(\ { if(answer==numberOne-numberTwo) right=true; else right=false; } return right; } } 5)右击项目“Jy001”的包“org.circle”,选择“New—>Class”,在“Name”栏中输入类名“ComputerFrame”,单击“Finish”按钮完成类的创建 6)双击“ComputerFrame .java”,编辑以下代码: import java.awt.*; import java.awt.event.*; public class ComputerFrame extends Frame implements ActionListener { TextField textOne,textTwo,textResult; Button getProblem,giveAnwser; Label operatorLabel,message; Teacher teacher; ComputerFrame(String s) { super(s); teacher=new Teacher(); setLayout(new FlowLayout()); textOne=new TextField(10); //创建textOne,其可见字符长是10 textTwo=new TextField(10); //创建textTwo,其可见字符长是10 textResult=new TextField(10); //创建textResult,其可见字符长是10 operatorLabel=new Label(\ message=new Label(\你还没有回答呢\ getProblem=new Button(\获取题目\ giveAnwser=new Button(\确认答案\ add(getProblem); add(textOne); add(operatorLabel); add(textTwo); add(new Label(\ add(textResult); add(giveAnwser); add(message); textResult.requestFocus(); textOne.setEditable(false); textTwo.setEditable(false); getProblem.addActionListener(this);//将当前窗口注册为getProblem的ActionEvent事件监视器 giveAnwser.addActionListener(this);//将当前窗口注册为giveAnwser的ActionEvent事件监视器 textResult.addActionListener(this);//将当前窗口注册为textResult的ActionEvent事件监视器 setBounds(100,100,450,100); setVisible(true); validate(); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } } ); } public void actionPerformed(ActionEvent e) { if(e.getSource()==getProblem) //判断事件源是否是getProblem { int number1=teacher.giveNumberOne(100); int number2=teacher.giveNumberTwo(100); String operator=teacher.givetOperator(); textOne.setText(\ textTwo.setText(\ operatorLabel.setText(operator); message.setText(\请回答\textResult.setText(null); } if(e.getSource()==giveAnwser) //判断事件源是否是giveAnwser { String answer=textResult.getText(); try{ int result=Integer.parseInt(answer); if(teacher.getRight(result)==true) { message.setText(\你回答正确\ } else { message.setText(\你回答错误\ } } catch(NumberFormatException ex) { message.setText(\请输入数字字符\ } } textResult.requestFocus(); validate(); } } 7)右击项目“Jy001”的包“org.circle”,选择“New—>Class”,在“Name”栏中输入类名“MainClass”,单击“Finish”按钮完成类的创建 8)双击“MainClass .java”,编辑以下代码: public class MainClass { public static void main(String args[]) { ComputerFrame frame; frame=new ComputerFrame(\算术运算\//创建窗口,其标题为:算术测试 } } 9)右击“MainClass.java”,选择Run as—>Java Application命令,运行Java程序,其结果如图1所示: 图1 2、信号灯 1)进入Myeclipse 8.5界面,依次选择File—>New—>Java Project命令,打开新建项目向导,在“Project name”栏中输入项目名“Jy001”,单击“Finish”按钮 2)右击项目“Jy001”,选择“New—>Package”,在“Name”栏中输入包名“org.circle”,单击“Finish”按钮完成包的创建 3)右击项目“Jy001”的包“org.circle”,选择“New—>Class”,在“Name”栏中输入类名“SignalMainClass”,单击“Finish”按钮完成类的创建 4)双击“SignalMainClass.java”,编辑以下代码: import java.awt.*; import java.applet.*; import java.awt.event.*; class SignalCanvas extends Canvas { int red,green,yellow,x,y,r; SignalCanvas() { setBackground(Color.white); } public void setRed(int r) { red=r; } public void setGreen(int g) { green=g; } public void setYellow(int y)