Java程序设计_试验6(学生版)(23页).doc
《Java程序设计_试验6(学生版)(23页).doc》由会员分享,可在线阅读,更多相关《Java程序设计_试验6(学生版)(23页).doc(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-Java程序设计_试验6(学生版)-第 23 页华北电力大学实 验 报 告 实验名称 Application及Applet程序设计 课程名称 Java程序设计 专业班级: 学生姓名: 学 号: 成 绩:指导教师:张学斌 实验日期:一、实验目的和要求1掌握Java Swing 组件的使用方法;2 理解委托代理事件处理模型掌握;3 掌握窗口菜单和快捷菜单设计方式;4 掌握在组件上绘图的方法;5 掌握Applet应用程序的设计方法二、实验环境Windows2000/Windows XP,JDK 1.21.6 三、实验内容和步骤要求按照实验内容,写出详细实验过程和步骤,必要时截图。实验1 算术测试1
2、.实验要求 编写一个算术测试小软件,用来训练小学生的算术能力。程序有三个类组成,其中Teacher对象充当监视器,负责给出算术题目,并判断回答者的答案是否正确;ComputerFrame对象负责为算术题目提供视图,比如用户可以通过ComputerFrame对象提供的GUI界面看到题目,并通过GUI界面给出题目的答案;MailClass是软件的主类。2.程序模板 MainClass.javapublic class MainClass public static void main(String args) ComputerFrame frame; frame=new ComputerFrame
3、(); frame.setTitle(算术测试); frame.setBounds(100,100,650,180); ComputerFrame.java 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; JButto
4、n 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(儿童级别); gr
5、ade1.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); menu
6、bar.add(choiceGrade); setJMenuBar(menubar); 【代码1】 /创建textOne,其可见字符长是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
7、(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
8、.setActionCommand(answer); teacherZhang.setJTextField(textOne,textTwo,textResult); teacherZhang.setJLabel(operatorLabel,message); 【代码2】/将teacherZhang注册为getProblem的ActionEvent事件监视器 【代码3】/将teacherZhang注册为giveAnwser的ActionEvent事件监视器 【代码4】/将teacherZhang注册为textResult的ActionEvent事件监视器 setVisible(true); va
9、lidate(); setDefaultCloseOperation(DISPOSE_ON_CLOSE); Techaer.javaimport java.util.Random;import java.awt.event.*;import javax.swing.*;public class Teacher implements ActionListener int numberOne,numberTwo; String operator=; boolean isRight; Random random; /用于给出随机数 int maxInteger; /题目中最大的整数 JTextFie
10、ld 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之
11、间的随机数; numberTwo=random.nextInt(maxInteger)+1; double d=Math.random(); / 获取(0,1)之间的随机数 if(d=0.5) operator=+; else operator=-; textOne.setText(+numberOne); textTwo.setText(+numberTwo); operatorLabel.setText(operator); message.setText(请回答); textResult.setText(null); else if(str.equals(answer) String a
12、nswer=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=numberOne-numberTwo) message.setText(你回答正确); else message.setText(你回答错误); catch(NumberFo
13、rmatException ex) message.setText(请输入数字字符); public void setJTextField(JTextField . t) textOne=t0; textTwo=t1; textResult=t2; public void setJLabel(JLabel .label) operatorLabel=label0; message=label1; 3.实验指导 Jbutton对象可触发ActionEvent事件。为了能监视到此类事件,事件源必须使用addActionListener方法获得监视器,创建监视器的类必须实现接口ActionListe
14、ner。4.实验扩展 (1)模仿本实验代码,再增加“小学生”级别。 (2)给出上述程序增加测试乘法的功能。实验2 布局与日历1. 实验要求编写一个应用程序,有一个窗口,该窗口的布局为BorderLayout布局。窗口的中心添加一个JPanel容器pCenter, pCenter的布局是7行7列的GriderLayout布局,pCenter中放置49个标签,用来显示日历。窗口的北面添加一个JPanel容器pNorth,其布局是FlowLayout布局,pNorth放置两个按钮:nextMonth和previousMonth。单击nextMonth按钮,可以显示当前月的下一月的日历;单击previ
15、ousMonth按钮,可以显示当前月的上一月的日历;窗口的南面添加一个Jpanel容器pSouth,其布局是FlowLayout布局,pSouth中放置一个标签用来显示一些信息。2.程序模板 CalendarMainClass.javapublic class CalendarMainClass public static void main(String args) CalendarFrame frame=new CalendarFrame(); frame.setBounds(100,100,360,300); frame.setVisible(true); frame.setYearAn
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 程序设计 试验 学生 23
限制150内