java实验 JAVA Swing 图形用户界面和对话框.doc
《java实验 JAVA Swing 图形用户界面和对话框.doc》由会员分享,可在线阅读,更多相关《java实验 JAVA Swing 图形用户界面和对话框.doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、JAVA实验报告课程名称 java实验 实验名称 JAVA Swing 图形用户界面和对话框 学 院_计算机学院_ 专业班级_软件 _姓 名_ _ 学号_ _实验日期:2015年4月30 日一. 实验目的(1) 学习处理ActionEven事件;(2) 学习使用布局类;(3) 学习焦点、鼠标和键盘事件;(4) 学习使用对话框。二. 实验内容()实验题目一:算术测试 ,编写一个算术测试小软件,用来训练小学生的算术能力。1.要点分析: 程序有三个类组成,其中Teacher对象充当监视器,负责给出算术题目,并判断回答者的答案是否正确。ComputerFrame对象负责为算术题目提供视图,比如用户可以
2、通过ComputerFrame对象提供的GUI界面给出题目的答案;MainClass是软件的主类。2.程序源代码:package 算术测试;public class MainClass public static void main(String args)ComputerFrame frame;frame=new ComputerFrame();frame.setTitle(算术测试);frame.setBounds(100,100,650,180);package 算术测试;import java.awt.*;import java.awt.event.*;import javax.swi
3、ng.*;public class ComputerFrame extends JFrame JMenuBar menubar;JMenu choiceGrade;JMenuItem grade1,grade2;JTextField textOne,textTwo,textResult;JButton getProblem,giveAnswer;JLabel operatorLabel,message;Teacher teacherZhang;ComputerFrame()teacherZhang=new Teacher();teacherZhang.setMaxInteger(20);set
4、Layout(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()
5、 public void actionPerformed(ActionEvent e) teacherZhang.setMaxInteger(50); ); choiceGrade.add(grade1); choiceGrade.add(grade2); menubar.add(choiceGrade); setJMenuBar(menubar); textOne=new JTextField(5);/创建文本框,其可见字符长为5 textTwo=new JTextField(5); textResult=new JTextField(5); operatorLabel=new JLabel
6、(+); operatorLabel.setFont(new Font(Arial,Font.BOLD,20); message=new JLabel(你还没有回答呢); getProblem=new JButton(获取题目); giveAnswer=new JButton(确认答案); add(getProblem); add(textOne); add(operatorLabel); add(textTwo); add(new JLabel(=); add(textResult); add(giveAnswer); add(message); textResult.requestFocu
7、s(); textOne.setEditable(false); textTwo.setEditable(false); getProblem.setActionCommand(getProblem); textResult.setActionCommand(anwser); giveAnswer.setActionCommand(answer); teacherZhang.setJTextField(textOne,textTwo,textResult); teacherZhang.setJLabel(operatorLabel,message); getProblem.addActionL
8、istener(teacherZhang); giveAnswer.addActionListener(teacherZhang); textResult.addActionListener(teacherZhang); setVisible(true); validate(); setDefaultCloseOperation(DISPOSE_ON_CLOSE);package 算术测试;import java.util.Random;import java.awt.event.*;import javax.swing.*;public class Teacher implements Ac
9、tionListenerint numberOne,numberTwo;String operator=;boolean isRigth;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.ge
10、tActionCommand(); if(str.equals(getProblem) numberOne=random.nextInt(maxInteger)+1;/1最大整数之间的随机数 numberTwo=random.nextInt(maxInteger)+1; double d=Math.random();/获取01之间的随机数 if(d=0.5) operator=+; else operator=-; textOne.setText(+numberOne); textTwo.setText(+numberTwo); operatorLabel.setText(operator);
11、 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(你回答正确); else message.setText(你回答错误); else if(operator.equals(-) if(result=numb
12、erOne-numberTwo) message.setText(你回答正确); else message.setText(你回答错误); catch(NumberFormatException ex) message.setText(请输入数字字符); public void setJTextField(JTextField. t) textOne=t0; textTwo=t1; textResult=t2; public void setJLabel(JLabel.label) operatorLabel=label0; message=label1; 3.实验结果:4.实验后练习:(1)
13、模仿本实验的代码,再增加小学生级别。(2)给上述程序增加测试乘法的功能。(二)实验题目二: 布局与日历。1.要点分析: 设置一个窗口,该窗口的布局为BorderLayout布局。窗口的中心添加一个JPanel容器pCenter,pCenter的布局是7行7列的GridLayout布局,pCenter中放置49个标签,用来显示日历。窗口的北面添加一个JPanel容器pNorth,其布局是FlowLayout布局,pNorth放置两个按钮:nextMonth和previousMonth,单击nextMonth按钮,可以显示当前月的下一月日历;单击previousMonth按钮,可以显示当前月的上一
14、月的日历。2.程序源代码:package 布局与日历;public class CalendarMainClass public static void main(String args) CalendarFrame frame=new CalendarFrame(); frame.setBounds(100,100,360,300); frame.setVisible(true); frame.setYearAndMonth(2015,5); package 布局与日历;import java.util.*;import java.awt.*;import java.awt.event.*;
15、import javax.swing.*;import javax.swing.border.*;public class CalendarFrame extends JFrame implements ActionListener/* * */private static final long serialVersionUID = -4568452730166791416L;JLabel labelDay=new JLabel42;JButton titleName=new JButton7;String name=日,一,二,三,四,五,六;JButton nextMonth,previo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java实验 JAVA Swing 图形用户界面和对话框 实验 图形 用户界面 对话框
限制150内