付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验报告(2013 / 2014学年 第 二 学期)Java语言程序设计综合图形界面程序设计2014年5月5日计算机学院 软件教学中心薛景臧玉付 班级学号12001037计算机科学与技术係)计算机学院专(计算机通信)实验名称综合图形界面程序设计指导教师薛景实验类型上机实验学时实验时间2014-5-5一、实验目的1. 学习使用Java Swing设计GUI界面2. 学习Java的事件监听机制的基本原理3. 学习监听器处理Java中的事件 二、实验环境1. 每位同学配备实验计算机一台2. 安装 JDK和 Eclipse三、实验内容1、编写一个算数测试小软件,用来训练小学生的算数能力。程序有3个类组
2、成, 其中Teacher对象充当监视器,负责给出算术题目,并判断回答者的答案是否正 确;ComputerFrame对象负责为算数题目提供视图,比如用户可以通过 ComputerFrame对象提供的GUI界面看到题目,并通过该GUI界面给出题目的答 案;Ma in Class是软件的主类。(请在下方空白处填写本程序的全部.程序代码及 软件界面截图)import java.awt.*;import java.awt.eve nt*;import javax.sw in g.*;p ublic class Compu terFrame exte nds JFrame JMe nuBar men ub
3、ar;JMe nu choiceGrade;JMe nultem grade1,grade2;JTextField text On e,textTwo,textResult; JButt on get Problem,giveA nwser;JLabel op eratorLabel,message; Teacher teacherZha ng;Compu terFrame() teacherZha ng = new Teacher(); teacherZha ng.setMax In teger(20); setLayout (new FlowLayout(); men ubar = new
4、 JMe nuBar(); choiceGrade = new JMenu(” 选择级别"); grade1 = new JMenultem("幼儿级别"); grade2 = new JMenultem("儿童级别"); gradel.addActio nListe ner(new Actio nListe ner()p ublic void actionP erformed(Acti on Eve nt e) teacherZha ng.setMax In teger(10););grade2.addAct ion Liste ner(ne
5、w Actio nListe ner() p ublic void actionP erformed(Acti on Eve nt e) teacherZha ng.setMax In teger(50););choiceGrade.add(grade1); choiceGrade.add(grade2);men ubar.add(choiceGrade); setJMe nuBar(me nubar);text One=new JTextField(5); textTwo = new JTextField(5); textResult = new JTextField(5);op erato
6、rLabel = new JLabel("+");op eratorLabel.setFo nt(new Fon t("Arial",Fo nt.BOLD,2O); message = new JLabel("你还没有回答呢");getProblem= new JButton(" 获取题目"); giveAnwser = new JButton(" 确认答案"); add(get Problem);add(textO ne); add( op eratorLabel);add(textTwo);
7、add( new JLabel("="); add(textResult);add(giveA nwser); add(message);textResult.requestFocus();text On e.setEditable(false); textTwo.setEditable(false);get Problem.setActio nComma nd("get Problem"); textResult.setActio nComma nd("a nswer");giveA nwser.setActio nComma nd
8、("a nswer");teacherZha ng.setJTextField(text On e,textTwo,textResult); teacherZha ng.setJLabel( op eratorLabel,message);get Problem.addActio nListe ner(teacherZha ng); giveA nwser.addActio nListe ner(teacherZha ng);textResult.addActio nListe ner(teacherZha ng); setVisible(true);validate。;s
9、etDefaultClose Op eratio n(DIS POSE_ON_CLOSE); import java.utiI.Ra ndom;import java.awt.eve nt*;import javax.swi ng.*;p ublic class Teacher imp leme nts Action Liste ner int nu mberO ne,nu mberTwo;String op erator=""boolea n isR in ght;Ra ndom ran dom;/ 用于给出随机数 int maxI nteger;/ 题目中最大的整数 J
10、TextField text On e,textTwo,textResult;JLabel op eratorLabel,message;Teacher() random=new Ran dom();p ublic void setMax In teger(i nt n) maxIn teger =n;p ublic void actio nP erformed(Actio nEve nt e) Stri ng str=e.getActio nComma nd();if(str.equals("get Problem") 至 max In teger 之获取(0,1)之间的
11、nu mber On e=ra ndom. next In t(maxI nteger)+1;/1间的随机数nu mberTwo=ra ndom.n ext In t(max In teger)+1;double d=Math.ra ndom();/随机数if(d>=0.5)op erator="+"elseop erator="-"text On e.setText(""+numberO ne); textTwo.setText(""+nu mberTwo); op eratorLabel.setText(
12、 op erator); message.setText("请回答");textResult.setText (n ull);else if(str.equals("a nswer")Stri ng an swer=textResult.getText(); try i nt result= In teger. parse In t(a nswer);你回答正确");if(op erator.equals("+") if(result=nu mber One+nu mberTwo) message.setText("
13、; else你回答错误");message.setText("else if(op erator.equals("-") if(result=nu mber On e-nu mberTwo) message.setText("你回答正确");else你回答错误");message.setText(" catch(NumberFormatExce ptio n ex)message.setText("请输入数字符号");p ublic void setJTextField(JTextField .
14、t) textO ne=t0;textTwo=t1; textResult=t2;P ublic void setJLabelJLabel .label)op eratorLabel=label0; message=label1;p ublic class Main Classp ublic static void main( Stri ng args) Compu terFrame frame ; frame = new Compu terFrame(); frame.setTitle("算数测试"); frame.setBou nds(100,100,650,180);
15、2、编写一个简单的计算器软件,实现简单的四则运算。(请在下方空白处填写本 程序的全部程序代码及软件界面截图)import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.eve nt.Acti on Eve nt; import java.awt.eve nt.Acti on Liste ner;import javax.swi ngJButt on;import javax.sw in g.JFrame;import javax.swi ngJ Pan el; import javax.sw in gJText
16、Area; import javax.sw in g.JTextField;P ublic class test exte nds JFrame p rivate final int BUTTON_WIDTH=50; p rivate final int BUTTON_HEIGHT=40; JButton on e=new JButto n("1"); JButton two=new JButto n("2"); JButton three=new JButto n( "3"); JButton four= new JButto n(
17、"4"); JButton five=new JButto n("5"); JButton six=n ew JButto n("6");JButton seve n=new JButto n("7");JButton eight=n ew JButto n("8");JButton nin e=new JButto n("9");JButton zero=new JButto n("0");JButton DOT=new JButto n(".
18、");JButton ADD=new JButt on ("+"); JButton SUB=new JButto n("-");JButton MUL=new JButto n("*"); JButton DIV=n ew JButto n("/");JButton EQU=new JButt on ("=");JButton CLEAR=n ew JButto n( "clear");JTextField text=new JTextField(20);Stri
19、 ng b=""Stri ng first=""/第一个数Stri ng seco nd=""/第二个数Stri ng result;/ 计算结果Stri ng symbol=""/ 符号int CONTRAL_ONE=0;p ublic test()setTitle("calculator"); setResizable(false);setBou nds(500, 200, 200, 230);setLayout (nu II);add(text);text.setBou nds(2, 10
20、, 191,30);text.setHorizo ntalAlig nmen t(JTextField.RIGHT ); text.setEditable(false);ADD_C OMPO NOENTO;setVisible(true);setDefaultCloseO peratio n( JFrame.DIS POSE_ON_CLOSE); Actio nListe ner liste ner= new Actio nListe ner()p ublic void acti onP erformed(Act ion Eve nt e) Stri ng a=e.getActi on Com
21、ma nd(); if(a="+" | a="-" | a="*" | a="/") first=b; symbol=a;b=""else if(a="=") if(first="") first=result; sec on d=b; result=getresult(first,sec on d,symbol); text.setText(result);first=""sec on d="" symbol-”:
22、 b="" elseb+=a;text.setText(b);p ublic void ADD_CO MPO NOENT()add( on e);on e.setBo un ds(0, 50, BUTTON_WIDTH, BUTTON_HEIGHT); on e.addActi on Liste ner(liste ner);add(two);two.setBo un ds(50, 50, BUTTON_WIDTH, BUTTON_HEIGHT); two.addActio nListe ner(liste ner);add(three);three.setBo un ds
23、(100, 50, BUTTON_WIDTH, BUTTON_HEIGHT); three.addActio nListe ner(liste ner);add(DOT);DOT.setBo un ds(150, 50, BUTTON_WIDTH, BUTTON_HEIGHT);DOT.addActio nListe ner(liste ner);add(four);four.setBo un ds(0, 90, BUTTON_WIDTH, BUTTONJHEIGHT); four.addActi on Liste ner(liste ner);add(five);five.setBo un
24、ds(50, 90, BUTTON_WIDTH, BUTTON_HEIGHT); five.addActio nListe ner(liste ner);add(six);six.setBo un ds(100, 90, BUTTON_WIDTH, BUTTON_HEIGHT); six.addActio nListe ner(liste ner);add(DIV);DIV.setBo un ds(150, 90, BUTTON_WIDTH, BUTTON_HEIGHT); DIV.addActio nListe ner(liste ner);add(seve n);seve n. setBo
25、 un ds(0, 130, BUTTON_WIDTH, BUTTON_HEIGHT); seve n. addActi on Liste ner(liste ner);add( eight);eight.setBo un ds(50, 130, BUTTON_WIDTH, BUTTONJHEIGHT); eight.addAct ion Liste ner(liste ner);add( nin e);nin e.setBo un ds(100, 130, BUTTON_WIDTH, BUTTON_HEIGHT); nin e.addActio nListe ner(liste ner);a
26、dd(MUL);MUL.setBo un ds(150, 130, BUTTON_WIDTH, BUTTON_HEIGHT);MUL.addActio nListe ner(liste ner);add(zero);zero.setBo un ds(0, 170, BUTTON_WIDTH, BUTTON_HEIGHT); zero.addActio nListe ner(liste ner);add(SUB);SUB.setBo un ds(50, 170, BUTTON_WIDTH, BUTTON_HEIGHT);SUB.addActio nListe ner(liste ner);add
27、(ADD);ADD.setBo un ds(100, 170, BUTTON_WIDTH, BUTTON_HEIGHT);ADD.addActio nListe ner(liste ner);add(EQU);EQU.setBo un ds(150, 170, BUTTON_WIDTH, BUTTON_HEIGHT);EQU.addActio nListe ner(liste ner);p ublic String getresult(Stn ng first, String sec on d,Stn ng symble) double a=0;double b=0;if(first!=&qu
28、ot;")a=Double .p arseDouble(first);if(seco nd!="")b= Double. parseDouble(sec on d);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;p ublic static void main( S
29、tri ng args) / TODO Auto-ge nerated method stub new test();=1 ca leu late r口 r B141123456i7890-14-'二J"=勺 caIculator I口 1 B361234567S90-H=r已 caIculator |口 1 B12123-456/7S90-1 1)-.1 calculator !口 I' SIS5123+45G/TSg0-+=3、使用Java Swing中的各个组件,编写一个自定义的软件界面,例如:学生成 绩管理系统、图书馆管理系统、人事管理系统等等(请在下方空白处
30、填写本程序 的全部程序代码及软件界面截图) import java.awt.*;import java.awt.eve nt*;class Win exte nds Frame imp leme nts Acti on Liste nerMen uBar bar;Menu men u1,me nu 2,me nu 3,me nu4;Men ultem item1,item2,item3,item4,item5,item6,item7,item8;TextArea text;Win( Stri ng s)sup er(s);bar=new Men uBar(); men u仁 new Me nu
31、("文件"); men u2=new Me nu('编辑"); men u3=new Me nu('查看");men u4=new Me nu('查找");item仁new Menultem("打开");item2=new Menultem(" 保存"); item3=new Menultem("撤消");item4=new Menultem(” 复制");item5=new Menultem("光标指示");item6=new M
32、enultem(” 全屏显示");item7=new Menultem("查找");item8=new Menultem(” 替换"); text=new TextArea(” 显示信息文本框");men u1.add(item1);me nul.addSe parator();me nu1.add(item2);menu 2.add(item3);me nu 2.addSe parator();me nu 2.add(item4);menu 3.add(item5);me nu 3.add(item6);menu 4.add(item7);m
33、e nu 4.add(item8);bar.add(me nu1);bar.add(me nu 2);bar.add(me nu 3);bar.add(me nu 4);setMe nuBar(bar);add(text);item1.addActi on Liste ner(this);item2.addActio nListe ner(this);item3.addActio nListe ner(this);item4.addActio nListe ner(this);item5.addActio nListe ner(this);item6.addActio nListe ner(this);item7.addActio nListe ner(this);item8.addActio nListe ner(this);setVisible(true);setBou nds(100,120,100,90);p ublic void actionP erformed(Acti on Eve nt e)if(e.getSource()=item1)text.setText("你点击了打开菜单项");validate();else if(e.getSource()=item2)text.setText("你点击了保存菜单项&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理安全持续改进方法
- 护理不良事件报告系统
- 护理基础知识入门
- 护理技能提升:静脉输液并发症预防
- 零售业连锁店设备管理与维修招聘面试指南
- 《税法》(第八版)习题及答案 6.2.1车船税法
- 快消品行业供应链协调员面试指南
- 基于元宇宙的虚拟世界与剧情引擎研究
- 联想市场营销部高级经理面试经验
- 快消品行业大商客户经理培训手册
- 2026年滁州职业技术学院单招综合素质考试题库附答案详解
- 2026春统编版三年级下册道德与法治每课知识点清单
- 2025年建筑安全员c2考试题及答案
- 2025中国国新控股有限责任公司招聘7人笔试历年常考点试题专练附带答案详解
- 东北三省三校2026年高三下学期高考第一次联合模拟考试政治试卷
- 2026秋招:平安银行笔试题及答案
- 2026年六安职业技术学院单招职业适应性考试题库附参考答案详解ab卷
- 2026广东江门职业技术学院管理教辅人员招聘4人备考题库带答案详解(基础题)
- 货梯使用专项安全培训课件
- (2025版)国家基层高血压防治管理指南2025版课件
- 女职工安全教育培训内容课件
评论
0/150
提交评论