组件与事件处理及编程
更新时间:2023-09-11 08:10:01 阅读量: 教育文库 文档下载
甘肃政法学院
本科学生实验报告
( 三 )
姓名 刘倚帆 学院 计算机科学学院 专业 计算机科学与技术 班级 12级专升本班 实验课程名称 Java 程序设计 试验时间 2012 年 10 月 23 日 指导教师及职称 李瑞生 实验成绩 开课时间 2012—2013 学年 第一 学期
甘肃政法学院实验管理中心印制
实验题目 组件与事件处理(1) 组件与事件编程(2) 小组合作 否 姓 名 一、实验目的: 班 级 学 号 组件与事件处理(1) 掌握java 图形用户界面设计常用类及其各自重要方法的应用。 掌握java 事件处理模式并熟练掌握文本框上事件处理的方法。 组件与事件编程(2) 掌握package语句与import语句的用法。 掌握对话框的编制和事件处理方法。 掌握鼠标焦点事件、鼠标事件及键盘事件的处理方法。 二、实验要求: ? ? ? 复习理论教学中所学的内容。 认真进行实验预习,查阅参考书,书写源程序,书写实验预习报告。 认真总结实验并书写实验报告。 三、实验环境: 安装有JDK1.6,Eclipse的计算机。 四、实验内容与步骤:
组件与事件处理(1)
1、算术测试:请读懂下面模板程序,将其补充完整并调试运行。 Teacher.java
package 实验3_1_1; public class Teacher { int numberOne,numberTwo; String operator=\; boolean right;
public int giveNumberOne(int n) { numberOne=(int)(Math.random()*n)+1; return numberOne; }
public int giveNumberTwo(int n) { numberTwo=(int)(Math.random()*n)+1; return numberTwo; }
public String giveOperator() { double d=Math.random(); if(d>=0.5) operator=\; else
operator=\; return operator; }
public boolean getRight(int answer) { if(operator.equals(\))
{ if(answer==numberOne+numberTwo) right=true; else
right=false; }
else if(operator.equals(\))
{ if(answer==numberOne-numberTwo) right=true; else
right=false; }
return right; } }
ComputerFrame.java
package 实验3_1_1; import java.awt.*; import java.awt.event.*; import javax.swing.JTextField; @SuppressWarnings(\)
public class ComputerFrame extends Frame implements ActionListener { JTextField textOne; JTextField textTwo; JTextField textResult;
Button getProblem,giveAnwser; Label operatorLabel,message; Teacher teacher;
ComputerFrame(String s) { super(s);
teacher=new Teacher(); setLayout(new FlowLayout());
textOne=new JTextField(10); //创建textOne,其可见字符长是10 textTwo=new JTextField(10); //创建textTwo,其可见字符长是10 textResult=new JTextField(10); //创建textResult,其可见字符长是10 operatorLabel=new Label(\); message=new Label(\你还没有回答呢\); getProblem=new Button(\获取题目\); giveAnwser=new Button(\确认答案\); add(getProblem); add(textOne); add(operatorLabel); add(textTwo); add(new Label(\)); add(textResult); add(giveAnwser); add(message);
textResult.requestFocus(); textOne.setEditable(false); textTwo.setEditable(false);
getProblem.addActionListener(this); //将当前窗口注册为getProblem的ActionEvent事件监视器 giveAnwser.addActionListener(this); //将当前窗口注册为giveAnwser的ActionEvent事件监视器 textResult.addActionListener(this); //将当前窗口注册为textResult的ActionEvent事件监视器 setBounds(100,100,450,100); setVisible(true); validate();
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ System.exit(0); } } ); }
public void actionPerformed(ActionEvent e)
{ if(e.getSource() == getProblem) //判断事件源是否是getProblem { int number1=teacher.giveNumberOne(100); int number2=teacher.giveNumberTwo(100); String operator=teacher.giveOperator(); textOne.setText(\+number1); textTwo.setText(\+number2); operatorLabel.setText(operator); message.setText(\请回答\); textResult.setText(null); }
if(e.getSource() == giveAnwser) //判断事件源是否是giveAnwser { String answer=textResult.getText(); try{
int result=Integer.parseInt(answer); if(teacher.getRight(result)==true) { message.setText(\你回答正确\); } else
{ message.setText(\你回答错误\); } }
catch(NumberFormatException ex)
{ message.setText(\请输入数字字符\); } }
textResult.requestFocus(); validate(); } }
MainClass.java
package 实验3_1_1; public class MainClass { @SuppressWarnings(\)
public static void main(String args[]) { ComputerFrame frame;
frame=new ComputerFrame(\算术测试\);//创建窗口,其标题为:算术测试 }
equation.setB(b); equation.setC(c); textA.setText(\+a); textB.setText(\+b); textC.setText(\+c);
showRoots.append(\根:\+equation.getRootOne()); showRoots.append(\根:\+equation.getRootTwo()); }
catch(Exception ex)
{ showRoots.append(\+ex+\); } } }
EquationMainClass.java
package 实验3_2;
public class EquationMainClass { @SuppressWarnings(\)
public static void main(String args[])
{ EquationFrame frame=new EquationFrame(); } }
运行结果:
2、字体对话框:请读懂下面模板代码,将其补充完整并调试运行。 FontFamilyNames.java
package 实验3_2_2;
import java.awt.GraphicsEnvironment; public class FontFamilyNames { String fontName[];
public String [] getFontName()
{ GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment(); fontName=ge.getAvailableFontFamilyNames(); return fontName; } }
FontDialog.java
package 实验3_2_2;
import java.awt.event.*; import java.awt.*;
import javax.swing.JLabel;
public class FontDialog extends Dialog implements ItemListener,ActionListener { FontFamilyNames fontFamilyNames; int fontSize=38; String fontName; Choice fontNameList; JLabel label; Font font;
Button yes,cancel; static int YES=1,NO=0;
int state=-1; FontDialog(Frame f) { super(f);
fontFamilyNames=new FontFamilyNames();
setModal(true); //对话框设置为有模式 yes=new Button(\); cancel=new Button(\); yes.addActionListener(this); cancel.addActionListener(this);
label=new JLabel(\奥运\,JLabel.CENTER); fontNameList=new Choice();
String name[]=fontFamilyNames.getFontName(); for(int k=0;k fontNameList.addItemListener(this); add(fontNameList,BorderLayout.NORTH); add(label,BorderLayout.CENTER); Panel pSouth=new Panel(); pSouth.add(yes); pSouth.add(cancel); add(pSouth,BorderLayout.SOUTH); setBounds(100,100,280,170); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { state=NO; setVisible(false); } } ); validate(); } public void itemStateChanged(ItemEvent e) { fontName=(String)fontNameList.getSelectedItem(); font=new Font(fontName,Font.BOLD,fontSize); label.setFont(font); label.repaint(); validate(); } public void actionPerformed(ActionEvent e) { if(e.getSource()==yes) { state=YES; setVisible(false); //对话框设置为不可见 } else if(e.getSource()==cancel) { state=NO; setVisible(false); //对话框设置为不可见 } } public int getState() { return state; } public Font getFont() { return font; } } FrameHaveDialog.java package 实验3_2_2; import java.awt.event.*; import java.awt.*; import javax.swing.JTextArea; public class FrameHaveDialog extends Frame implements ActionListener { JTextArea text; Button buttonFont; FrameHaveDialog() { buttonFont=new Button(\设置字体\); text=new JTextArea(\实用教程(第三版)\); buttonFont.addActionListener(this); add(buttonFont,BorderLayout.NORTH); add(text); setBounds(60,60,300,300); setVisible(true); validate(); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } } ); } public void actionPerformed(ActionEvent e) { if(e.getSource()==buttonFont) { FontDialog dialog=new FontDialog(this); //创建对话框 setVisible(true); //对话框设置为可见 dialog.setTitle(\字体对话框\); //对话框设置设置标题为“字体对话框” if(dialog.getState()==FontDialog.YES) { text.setFont(dialog.getFont()); text.repaint(); } if(dialog.getState()==FontDialog.NO) { text.repaint(); } } } } FontDialogMainClass.java package 实验3_2_2; public class FontDialogMainClass { public static void main(String args[]) { new FrameHaveDialog(); } } 运行结果: 3、英语单词拼写练习:请读懂下面模板代码,将其补充完整并调试运行。 RondomString.java package 实验3_2_3; public class RondomString { String str=\; public String getRondomString(String s) { StringBuffer strBuffer=new StringBuffer(s); int m=strBuffer.length(); for(int k=0;k
正在阅读:
组件与事件处理及编程09-11
《交通安全与自我保护》06-08
2018届高三阳光启学标准模拟信息卷一语文试题(解析版)04-24
《留青竹刻》阅读附答案12-11
04电子科大高等数学竞赛试题与解答03-20
地理高考复习100道填空提06-29
田赛远度成绩记录表08-15
第一学期小学音乐课程改革实验总结07-28
信息论复习题210-23
外包工程工作人员安全培训考试试题06-27
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 组件
- 编程
- 事件
- 处理
- 建筑电工培训教学计划与大纲
- 浅谈如何通过看英文原版电影来提高英语听说能力
- 国家政策对数学应用性问题怎么解
- 2018 - 2019学年七年级数学下册第五章分式5.5分式方程一练习新版浙教版291
- 工字钢便桥设计及荷载验算书
- 选词填空练习题二
- 2018年县委办公室工作总结
- 专题:商业银行知识产权质押贷款全面解析
- 2017年职称英语考试备考核心重点词汇整理
- 2017步步高《单元滚动检测卷》高考化学(人教,全国)精练—第十章 化学实验热点
- 第三章 解题技巧 §1合理选择研究对象,尽可能地减少中间未知量
- 五年级数学上册小数乘法简便计算精选
- 山东省聊城市2019年上学期期中考试七年级英语试卷
- 《盲孩子和他的影子》课本剧剧本
- 青饲料营养吸收
- 2018年水电站项目消防应急救援演练实施方案
- 初中英语教学中如何布置与批改作业
- 2014年12月ACCA F9考试真题
- 如何才能让孩子身心健康发展
- 1000MW机组发电机检修作业指导书 - 图文