当前位置:文档之家› 实验报告模板

实验报告模板

实验报告(2013 / 2014 学年第二学期)课程名称Java 语言程序设计实验名称综合图形界面程序设计实验时间2014年 5月 5日指导单位计算机学院软件教学中心指导教师薛景学生姓名臧玉付班级学号12001037计算机科学与技术学院(系)计算机学院专业(计算机通信)实验名称综合图形界面程序设计指导教师薛景实验类型上机实验学时2实验时间2014-5-5一、实验目的1.学习使用 Java Swing 设计 GUI界面2.学习 Java 的事件监听机制的基本原理3.学习监听器处理 Java 中的事件二、实验环境1.每位同学配备实验计算机一台2.安装 JDK和 Eclipse三、实验内容1、编写一个算数测试小软件,用来训练小学生的算数能力。

程序有 3 个类组成,其中 Teacher 对象充当监视器,负责给出算术题目,并判断回答者的答案是否正确;ComputerFrame 对象负责为算数题目提供视图,比如用户可以通过ComputerFrame对象提供的 GUI界面看到题目,并通过该 GUI 界面给出题目的答案; MainClass 是软件的主类。

(请在下方空白处填写本程序的全部程序代码及..软件界面截图)import java.awt.*;import java.awt.event.*;import javax.swing.*;public class ComputerFrame extends JFrame{JMenuBar menubar;JMenu choiceGrade;JMenuItem grade1,grade2;JTextField textOne,textTwo,textResult;JButton getProblem,giveAnwser;JLabel operatorLabel,message;Teacher teacherZhang;ComputerFrame(){teacherZhang = new Teacher();teacherZhang.setMaxInteger(20);setLayout(new FlowLayout());menubar = new JMenuBar();choiceGrade = new JMenu("选择级别");grade1 = new JMenuItem("幼儿级别");grade2 = new JMenuItem("儿童级别");grade1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){teacherZhang.setMaxInteger(10);}});grade2.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){teacherZhang.setMaxInteger(50);}});choiceGrade.add(grade1);choiceGrade.add(grade2);menubar.add(choiceGrade);setJMenuBar(menubar);textOne=new JTextField(5);textTwo = new JTextField(5);textResult = new JTextField(5);operatorLabel = new JLabel("+");operatorLabel.setFont(new Font("Arial",Font.BOLD,20)); message = new JLabel("你还没有回答呢"); getProblem= new JButton("获取题目"); giveAnwser = new JButton("确认答案");add(getProblem);add(textOne);add(operatorLabel);add(textTwo);add(new JLabel("="));add(textResult);add(giveAnwser);add(message);textResult.requestFocus();textOne.setEditable(false);textTwo.setEditable(false);getProblem.setActionCommand("getProblem"); textResult.setActionCommand("answer"); giveAnwser.setActionCommand("answer"); teacherZhang.setJTextField(textOne,textTwo,textResult); teacherZhang.setJLabel(operatorLabel,message); getProblem.addActionListener(teacherZhang); giveAnwser.addActionListener(teacherZhang);textResult.addActionListener(teacherZhang);setVisible(true);validate();setDefaultCloseOperation(DISPOSE_ON_CLOSE);}}import java.util.Random;import java.awt.event.*;import javax.swing.*;public class Teacher implements ActionListener {int numberOne,numberTwo;String operator="";boolean isRinght;Random random;//用于给出随机数int maxInteger;//题目中最大的整数JTextField textOne,textTwo,textResult;JLabel operatorLabel,message;Teacher() {random=new Random();}public void setMaxInteger(int n) {maxInteger=n;}public void actionPerformed(ActionEvent e) {String str=e.getActionCommand();if(str.equals("getProblem")) {numberOne=random.nextInt(maxInteger)+1;//1至 maxInteger 之间的随机数numberTwo=random.nextInt(maxInteger)+1;double d=Math.random();//获取(0,1)之间的随机数if(d>=0.5)operator="+";elseoperator="-";textOne.setText(""+numberOne);textTwo.setText(""+numberTwo);operatorLabel.setText(operator);message.setText("请回答 ");textResult.setText(null);}else if(str.equals("answer")){String answer=textResult.getText();try{ int result=Integer.parseInt(answer);if(operator.equals("+")){if(result==numberOne+numberTwo)message.setText("你回答正确 ");elsemessage.setText("你回答错误 ");}else if(operator.equals("-")){if(result==numberOne-numberTwo)message.setText("你回答正确 ");elsemessage.setText("你回答错误 ");}}catch(NumberFormatException ex){message.setText("请输入数字符号 ");}}}public void setJTextField(JTextField ...t){textOne=t[0];textTwo=t[1];textResult=t[2];}public void setJLabel(JLabel bel){operatorLabel=label[0];message=label[1];}}public class MainClass{public static void main(String args[]){ComputerFrame frame ;frame = new ComputerFrame();frame.setTitle("算数测试 ");frame.setBounds(100,100,650,180);}}2、编写一个简单的计算器软件,实现简单的四则运算。

(请在下方空白处填写本程序的全部程序代码及软件界面截图)..import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextArea;import javax.swing.JTextField;public class test extends JFrame {private final int BUTTON_WIDTH=50;private final int BUTTON_HEIGHT=40;JButton one=new JButton("1");JButton two=new JButton("2");JButton three=new JButton("3");JButton four=new JButton("4");JButton five=new JButton("5");JButton six=new JButton("6");JButton seven=new JButton("7");JButton eight=new JButton("8");JButton nine=new JButton("9");JButton zero=new JButton("0");JButton DOT=new JButton(".");JButton ADD=new JButton("+");JButton SUB=new JButton("-");JButton MUL=new JButton("*");JButton DIV=new JButton("/");JButton EQU=new JButton("=");JButton CLEAR=new JButton("clear");JTextField text=new JTextField(20);String b="";String first="";//第一个数String second="";//第二个数String result;//计算结果String symbol="";//符号int CONTRAL_ONE=0;public test(){setTitle("calculator");setResizable(false);setBounds(500, 200, 200, 230);setLayout(null);add(text);text.setBounds(2, 10, 191, 30);text.setHorizontalAlignment(JTextField.RIGHT );text.setEditable(false);ADD_COMPONOENT();setVisible(true);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}ActionListener listener= new ActionListener(){public void actionPerformed(ActionEvent e){ String a=e.getActionCommand();if(a=="+" || a=="-" || a=="*" || a=="/"){first=b;symbol=a;b="";}else if(a=="="){if(first=="")first=result;second=b;result=getresult(first,second,symbol);text.setText(result);first="";second="";symbol="";b="";}else{b+=a;text.setText(b);}}};public void ADD_COMPONOENT(){add(one);one.setBounds(0, 50, BUTTON_WIDTH, BUTTON_HEIGHT);one.addActionListener(listener);add(two);two.setBounds(50, 50, BUTTON_WIDTH, BUTTON_HEIGHT);two.addActionListener(listener);add(three);three.setBounds(100, 50, BUTTON_WIDTH, BUTTON_HEIGHT);three.addActionListener(listener);add(DOT);DOT.setBounds(150, 50, BUTTON_WIDTH, BUTTON_HEIGHT);DOT.addActionListener(listener);add(four);four.setBounds(0, 90, BUTTON_WIDTH, BUTTON_HEIGHT);four.addActionListener(listener);add(five);five.setBounds(50, 90, BUTTON_WIDTH, BUTTON_HEIGHT);five.addActionListener(listener);add(six);six.setBounds(100, 90, BUTTON_WIDTH, BUTTON_HEIGHT);six.addActionListener(listener);add(DIV);DIV.setBounds(150, 90, BUTTON_WIDTH, BUTTON_HEIGHT);DIV.addActionListener(listener);add(seven);seven.setBounds(0, 130, BUTTON_WIDTH, BUTTON_HEIGHT);seven.addActionListener(listener);add( eight);eight.setBounds(50, 130, BUTTON_WIDTH, BUTTON_HEIGHT);eight.addActionListener(listener);add(nine);nine.setBounds(100, 130, BUTTON_WIDTH, BUTTON_HEIGHT);nine.addActionListener(listener);add(MUL);MUL.setBounds(150, 130, BUTTON_WIDTH, BUTTON_HEIGHT);MUL.addActionListener(listener);add(zero);zero.setBounds(0, 170, BUTTON_WIDTH, BUTTON_HEIGHT);zero.addActionListener(listener);add(SUB);SUB.setBounds(50, 170, BUTTON_WIDTH, BUTTON_HEIGHT);SUB.addActionListener(listener);add(ADD);ADD.setBounds(100, 170, BUTTON_WIDTH, BUTTON_HEIGHT);ADD.addActionListener(listener);add(EQU);EQU.setBounds(150, 170, BUTTON_WIDTH, BUTTON_HEIGHT);EQU.addActionListener(listener);}public String getresult(String first, String second,String symble){ double a=0;double b=0;if(first!="")a=Double.parseDouble(first);if(second!="")b= Double.parseDouble(second);double c=0;if(symble=="+")c=a+b;else if(symble=="-")c=a-b;else if(symble=="*")c=a*b;else if(symble=="/")c=a/b;return ""+(float)c;};public static void main(String[] args) {//TODO Auto-generated methodstub new test();}}3、使用 Java Swing 中的各个组件,编写一个自定义的软件界面,例如:学生成绩管理系统、图书馆管理系统、人事管理系统等等(请在下方空白处填写本程序的全部程序代码及软件界面截图)..import java.awt.*;import java.awt.event.*;class Win extends Frame implements ActionListener{MenuBar bar;Menu menu1,menu2,menu3,menu4;MenuItem item1,item2,item3,item4,item5,item6,item7,item8;TextArea text;Win(String s){super(s);bar=new MenuBar();menu1=new Menu("文件 ");menu2=new Menu("编辑 ");menu3=new Menu("查看 ");menu4=new Menu("查找 ");item1=new MenuItem(" 打开 ");item2=new MenuItem(" 保存 "); item3=new MenuItem(" 撤消 ");item4=new MenuItem(" 复制 "); item5=new MenuItem(" 光标指示 ");item6=new MenuItem(" 全屏显示 "); item7=new MenuItem(" 查找 ");item8=new MenuItem(" 替换 "); text=new TextArea(" 显示信息文本框 ");menu1.add(item1);menu1.addSeparator();menu1.add(item2);menu2.add(item3);menu2.addSeparator();menu2.add(item4);menu3.add(item5);menu3.add(item6);menu4.add(item7);menu4.add(item8);bar.add(menu1);bar.add(menu2);bar.add(menu3);bar.add(menu4); setMenuBar(bar);add(text);item1.addActionListener(this);item2.addActionListener(this);item3.addActionListener(this);item4.addActionListener(this);item5.addActionListener(this);item6.addActionListener(this);item7.addActionListener(this);item8.addActionListener(this);setVisible(true);setBounds(100,120,100,90);}public void actionPerformed(ActionEvent e){if(e.getSource()==item1){text.setText("你点击了打开菜单项 ");validate();}else if(e.getSource()==item2){text.setText("你点击了保存菜单项 ");validate();}else if(e.getSource()==item3){text.setText("你点击了撤消菜单项 ");validate();else if(e.getSource()==item4){text.setText("你点击了复制菜单项 "); validate();}else if(e.getSource()==item5){text.setText("你点击了光标指示菜单项"); validate();}else if(e.getSource()==item6){text.setText("你点击了全屏显示菜单项"); validate();}else if(e.getSource()==item7){text.setText("你点击了查找菜单项 "); validate();}else if(e.getSource()==item8){text.setText("你点击了替换菜单项 "); validate();}}}public class example{public static void main(String args[]){Win win=new Win(" 窗口 ");win.setBounds(100,100,400,400);win.setVisible(true);win.setResizable(true);win.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);});} }四、实验小结(包括问题和解决方法、心得体会等)Java 上机实验中,学到了很多书本以外的知识。

相关主题