




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验3:GUI编程一、实验目的1. 掌握Java图形组件和布局管理器的使用2. 理解和掌握Java事件处理机制的使用。3. 掌握图形界面的各种常用控件的使用。4. 掌握常用对话框的使用。二、实验要求本次实验要求以Eclipse为开发平台。三、实验内容与步骤1编写一个Java Application程序,该程序的运行结果如下所示。2编写一个Java Application程序,用GridLayout布局方式放置4个按钮,按钮背景为红、绿、蓝、黄色。该程序的运行结果如下所示。3编写一个Java Application程序,该程序的运行结果如下所示。4. 编写程序,要求显示一个 300100 像素的窗口,窗口中包含两个按钮和一个标签。当点击第一个按钮时,窗口标签中显示”button1 is pressed”; 当点击第二个按钮时,退出应用程序。如下图所示。5设计一个简单计算器,如下图所示。在“操作数:”标签右侧的两个文本框输入操作数,当单击操作符,*,/按钮时,对两个操作数进行运算并将结果填入到“结 果:”标签右侧的文本框中。该程序模板已给出,请在要求位置补充若干代码,以完成程序要求的功能。6下面的程序是在顶层容器JFrame中创建一个表格,并在表格中显示两行内容。请将程序补充完整并上机运行。import javax.swing.*; import java.awt.*; import java.awt.event.*; public class jtable public jtable() JFrame f=new JFrame(); Object playerInfo= 张华,new Integer(66),new Integer(32),new Integer(98),new Boolean(false), 阿宝,new Integer(82),new Integer(69),new Integer(151),new Boolean(true), ; String Names=姓名,语文,数学,总分,及格; /利用构造方法JTable(Object data, Object columnName)创建表格对象JTable table=new JTable( (1) ); JScrollPane scrollPane=new JScrollPane( (2) );/表格使用滚动面板 f.getContentPane().add( (3) ); /加到容器中 f.setTitle(Simple Table); f.setBounds(100, 100, 400, 200); f.setVisible(true); f.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); public static void main(String args) jtable b=new (4) ; 7.编写一个算术测试小软件,用来训练小学生的算术能力。程序有3个类组成,其中Teacher对象充当监视器,负责给出算术题目,并判断回答者的答案是否正确。ComputerFrame对象负责为算术题目提供视图,比如用户可以通过ComputerFrame对象提供的GUI界面看到题目,并通过该GUI界面给出题目的答案;MailClass是软件的主类。请按如下的程序模板中的要求,将【代码】替换为Java程序代码,以完成该程序。MainClass.java清单:public class MainClass public static void main(String args) ComputerFrame frame; frame=new ComputerFrame(); 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; 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); 【代码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(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); 【代码2】/将teacherZhang注册为getProblem的ActionEvent事件监视器 【代码3】/将teacherZhang注册为giveAnwser的ActionEvent事件监视器 【代码4】/将teacherZhang注册为textResult的ActionEvent事件监视器 setVisible(true); validate(); setDefaultCloseOperation(EXIT_ON_CLOSE); Teacher.java清单:import 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; /题目中最大的整数 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=+; else operator=-; 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(你回答正确); else message.setText(你回答错误); else if(operator.equals(-) if(result=numberOne-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; 8. 在上题的程序基础上进一步改进:(1)模仿本实验代码,给上述程序增加测试乘法的功能。(2)再增加“小学生”级别,让其能算100以内的加、减、乘法。9. 编写一个应用程序,程序运行时弹出一个输入对话框,用户使用该对话框输入一个正数,如果用户出现输入错误(比如,输入非数字字符)程序弹出一个消息对话框,警告出现了输入错误,确定后重新弹出输入对话框,若输入的是负数也将重新弹出输入对话框。如果输入无错误,程序显示正数的平方根。运行时输入对话框和警告对话框效果如下图所示。请按如下的程序模板中的要求,将【代码】替换为Java程序代码,以完成该程序。(提示:如果消息对话框或警告框的第一个参数为null时,它会在屏幕的正前方显示出来。) InputNumber.javaimport javax.swing.*;public class InputNumber public static void main(String args) double result=0; boolean inputComplete=false; while(inputComplete=false) String str=【代码1】 /弹出输入对话框 try result = Double.parseDouble(str); if(result=0) inpu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专业知识测试试题及答案
- 尿毒症甲状旁腺术后护理
- 婴幼儿肛周脓肿护理查房
- 药剂师的述职报告
- 服装店长的培训
- 2025年智能可穿戴设备野生动物追踪生物传感技术创新报告
- 2025-2030钻石行业市场现状供需特点及投资价值规划分析研究报告
- 2025至2030中国电化学酒精测试设备行业发展趋势分析与未来投资战略咨询研究报告
- 体检中心护理培训
- 公司出纳工作汇报
- 4.2《遵守规则》教学设计 -2025-2026学年八年级道德与法治上册
- 人工智能+高质量发展文化旅游产业智能化升级研究报告
- 2025年自考专业(计算机网络)考试综合练习附参考答案详解(A卷)
- 集输工应急处置考核试卷及答案
- 珠江医院护理面试题库及答案
- 流程管理某省市场营销MPR+LTC流程规划方案
- 2025年江苏省农垦集团有限公司招聘笔试备考及答案详解(新)
- 2025年济南市中考英语试题卷(含答案及解析)
- DB42∕T 1496-2019 公路边坡监测技术规程
- 【完整版】锁骨骨折护理查房课件
- GB∕T 35320-2017 危险与可操作性分析(HAZOP分析)应用指南
评论
0/150
提交评论