Java实验项目三_组件与事件编程_第1部分
Java程序设计实验指导书(答案)

第Ⅰ部分:实验指导实验1:Java开发环境J2SE一、实验目的(1)学习从网络上下载并安装J2SE开发工具。
(2)学习编写简单的Java Application程序.(3)了解Java源代码、字节码文件,掌握Java程序的编辑、编译和运行过程。
二、实验任务从网络上下载或从CD-ROM直接安装J2SE开发工具,编写简单的Java Application程序,编译并运行这个程序。
三、实验内容1.安装J2SE开发工具Sun公司为所有的java程序员提供了一套免费的java开发和运行环境,取名为Java 2 SDK,可以从上进行下载。
安装的时候可以选择安装到任意的硬盘驱动器上,例如安装到C:\j2sdk1.4.1_03目录下。
教师通过大屏幕演示J2SE的安装过程,以及在Windows98/2000/2003下环境变量的设置方法。
2.安装J2SE源代码编辑工具Edit Plus教师通过大屏幕演示Edit Plus的安装过程,以及在Windows98/2000/2003操作系统环境下编辑Java 原程序的常用命令的用法。
3.编写并编译、运行一个Java Application程序。
创建一个名为HelloWorldApp的java Application程序,在屏幕上简单的显示一句话"老师,你好!"。
public class HelloWorldApp{public static void main(String[] args){System.out.println("老师,你好!");}}4.编译并运行下面的Java Application程序,写出运行结果。
1:public class MyClass {2:private int day;3:private int month;4:private int year;5:public MyClass() {6:day = 1;7:month = 1;8:year = 1900;9:}10:public MyClass(int d,int m,int y) {11:day = d;12:month = m;13:year = y;14:}15:public void display(){16:System.out.println(day + "-" + month + "-" + year);17:}18:public static void main(String args[ ]) {19:MyClass m1 = new MyClass();20:MyClass m2 = new MyClass(25,12,2001);21:m1.display();22:m2.display();23:}24:}运行结果:1-1-190025-12-2001实验2:Java基本数据类型一、实验目的(1)掌握javadoc文档化工具的使用方法。
常用组件及事件处理

public void setResizable(boolean b)
设置窗口是否可调整大小,默认是可调整的
public void dispose()
窗口调用该方法可以撤消当前窗口,并释放当前窗口所使用的资
源
11
二、菜单条、菜单、菜单项
窗口中的菜单条、菜单、菜单项是我们所熟悉的界面,菜单放在 菜单条里,菜单项放在菜单里。 1. MenuBar 菜单条
构造方法: Frame( ) 该方法创建一个无标题的窗口,窗口的默认布局为 BorderLayout Frame(String s) 该方法创建一个标题为s的窗口,窗口的默认布 局为BorderLayout
10
实例方法:
public void setBounds(int a, int b, int width, int height)
如果系统不支持字体的名字,将取默认的名字创建字体对象,style 决定字体的样式,取值为一个整数,size决定字体的大小,单位是 磅。
style的有效取值: Font.BOLD Font.PLAIN Font.ITALIC Font.ROMAN_BASELINE Font.CENTER_BASELINE等
7
四、组件的激活与可见性
public void setEnabled(boolean b) // 组件调用这个方法来设置组件是否可以被激活,当参数b取
true时,组件可以被激活;当参数b取false时,组件不可被激活。 默认情况下组件是可以被激活的。 public void setVisible(boolean b)
Java.awt包中的MenuBar类是负责创建菜单条的,即MenuBar的 一个实例就是一个菜单条。
Java基础教程(第3版)_第11章_组件及事件处理资料

2020/7/18
第8页
例子2
例子2中我们在主类的main方法中,用JFrame的子 类创建一个含有菜单的窗口。 Example11_2.java,WindowMenu.java 效果如图11.3。
2020/7/18
第9页
11.3 常用组件与布局 11.3.1常用组件
1.文本框 2.文本区 3.按钮 4.标签 5.选择框 6.单选按钮 7.下拉列表 8.密码框
width,int
2020/7/18
第 16 页
11. 4 处理事件
学习组件除了要熟悉组件的属性和功能外,一个更重要的方 面是学习怎样处理组件上发生的界面事件。当用户在文本框中键 入文本后按回车键、单击按钮、在一个下拉式列表中选择一个条 目等操作时,都发生界面事件。
程序有时需对发生的事件作出反应,来实现特定的任务,例 如,用户单击一个名字叫“确定”或名字叫“取消”的按钮,程 序可能需要作出不同的处理。
HIDE_ON_CLOSE
隐藏当前窗口。
DISPOSE_ON_CLOSE
隐藏当前窗口,并释放窗体占有的其它资源。
EXIT_ON_CLOSE
结束窗口所在的应用程序。
例子1中,在主类的 main 方 法 中 , 用 JFrame 创 建了2个窗口。程序运行效 果如图11.2。
2020/7/18
第7页
11.2.2 菜单条、菜单、菜单项
5.null布局
空布局容器可以准确地定位组件在容器的位置和大小。 组 件 调 用 setBounds(int a,int b,int width,int height)方法可以设置本身的大小和在容器中的位置。 例如,p是某个容器p.setLayout(null);把p的布局设置为空布
Java程序设计实用教程第4版习题解答与实验指导第1-8章

Java程序设计实用教程(第4版)习题解答与实验指导叶核亚编著2013年11月目录“Java程序设计”课程教学要求 (1)第1章Java概述 (3)第2章Java语言基础 (5)第3章类的封装、继承和多态 (22)第4章接口、内部类和Java API基础 (37)第5章异常处理 (42)第6章图形用户界面 (44)第7章多线程 (49)第8章输入/输出流和文件操作 (51)“Java程序设计”课程教学要求1. 课程性质、目的和任务程序设计是高等学校计算机学科及电子信息学科各专业本科的核心专业基础课程,是培养学生软件设计能力的重要课程。
在计算机学科的本科教学中,起着非常重要的作用。
“Java程序设计”是计算机科学与技术专业本科的专业基础限选课,开设本课程的目的是:进行程序设计和面向对象方法的基础训练;使用Java编程技术,设计解决操作系统、网络通信、数据库等多种实际问题的应用程序。
本课程通过全面、系统地介绍Java语言的基础知识、运行机制、多种编程方法和技术,使学生理解和掌握面向对象的程序设计方法,理解和掌握网络程序的特点和设计方法,建立起牢固扎实的理论基础,培养综合应用程序的设计能力。
本课程的先修课程包括:C/C++程序设计I、C/C++程序设计II、数据结构、操作系统、计算机网络、数据库原理等。
2. 教学基本要求本课程的基本要求如下。
①了解Java语言特点,理解Java Application应用程序的运行原理和方法。
掌握在JDK 环境中编译和运行程序的操作,熟悉在MyEclipse集成开发环境中,编辑、编译、运行和调试程序的操作。
②掌握Java语言中语句、数组、引用类型等基本语法成分的使用方法,通过类、接口、内嵌类型、包、异常处理等机制表达和实现面向对象程序设计思想。
③掌握Java的多种实用技术,包括图形用户界面、多线程、文件操作和流、使用URL 和Socket进行网络通信等。
④熟悉Java JDBC数据库应用的设计方法。
Java程序设计实验报告2010

public void setab(inti, int j)
{ a=i; b=j; }
public void printab()
{ int sum=a+b;
System.out.println(“a+b=”+sum);
}
}
//B.java
packagepkg1.pkg2;
public class B
{ Exam3_6 d1=new Exam3_6();
System.out.print(”The current date is(year/month/day):”);
d1.outDate();
System.out.println( );
System.out.print(”Its tomorrow date is(year/month/day):”);
{ A x=new A();
A y=new A();
x.setab(5);
y.setab(10);
System.out.println(“x.a=”+x.geta()+”,y.a=”+y.geta());
x.setb(-5);
y.setb(-10);
System.out.println(“x.b=”+x.getb()+”,y.b=”+y.getb());
Its tomorrow is (year/month/day):2000/1/2
The current date is (year/month/day):2004/1/8
Is tomorrow is (year/month/day):2004/1/9
JAVA程序设计基础实验一

JAVA程序设计基础实验一实验报告一课程学号专业班级java程序设计xxxxxxxx实验项目姓名java语言基础xxxx成绩实验日期指导教师2021-9-17xxx计算机科学与技术(嵌入式方向)一【实验目的】(1)介绍java程序的结构及特点(2)熟识java语言的研发与运转环境(3)掌控java数据类型、语句和表达式(4)掌控java运算符及数据初始化(5)掌控java掌控语句二【实验内容】【项目一】完成实验指导书p2――1.2.1一个简单的应用程序。
classa{voidf(){system.out.println(\}}classb{}publicclasshello{publicstaticvoidmain(stringargs[]){system.out.println(\你好,很高兴学习java\aa=newa();a.f();}}【项目二】顺利完成实验指导书p6――1.3联手编程【项目三】完成实验指导书p14――3.2.1猜数字随机分配给客户一个1~100之间的整数?用户从键盘输入自己的猜测程序返回提示信息,提示信息分别是“猜大了”、“猜小了”和“猜对了”?用户可根据提示信息再次输入猜测,指导提示信息是“猜对了”(1)程序代码importjava.util.*;publicclasstest2{publicstaticvoidmain(stringargs[]){system.out.println(\给你一个1至100之间的整数,请猜测这个数\inta=(int)(math.random()*100)+1;intb=0;scannerreader=newscanner(system.in);system.out.println(\输入您的猜测:\b=reader.nextint();while(b!=a){if(b>a){system.out.println(\猜大了\b=reader.nextint();}elseif(bsystem.out.println(\猜猜大了\b=reader.nextint();}}system.out.println(\猜对了!\}}(2)运转结果图片【项目四】数组撰写一个java程序,定义一个2行3列于的整型二维数组,对数组中的每个元素赋值一个0~100的随机整数,然后分别对第一行、第二行的元素排序。
Java编程基础实验报告
Java编程基础实验报告编制教师唐春兰审定代伟(适用于计算机科学学院专业学生)2016至2017学年第一学期计算机科学学院实验名称:Java语言基础指导教师:唐春兰实验仪器:计算机实验日期:2016 年12 月2 日实验地点:第三实验楼209 实验目的:1、了解Java 的数据类型;2、掌握各种变量的声明方式;3、理解运算符的优先级;4、掌握JAVA基本数据类型、运算符与表达式、数组的使用方法;5、理解JAVA程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法;6、通过以上内容,掌握JAVA语言的编程规则。
实验内容及基本要求:1、读下列程序,理解不同数据类型变量的声明,写出其输出结果并上机运行验证。
public class SHIYAN2_1 {public static void main(String[] args) {byte b=0x55;short s=0x55ff;int i=1000000;long l=0xffffL;char c='a';float f=0.23F;double d=0.7E-3;boolean B=true;String S="这是字符串类数据类型";System.out.println("字节型变量 b = "+b);System.out.println("短整型变量 s = "+s);System.out.println(" 整型变量 i = "+i);System.out.println("长整型变量 l = "+l);System.out.println("字符型变量 c = "+c);System.out.println("浮点型变量 f = "+f);System.out.println("双精度变量 d = "+d);System.out.println("布尔型变量 B = "+B);System.out.println("字符串类对象 S = "+S);}}2、分析下列程序,了解变量的使用范围,修改程序使之能成功运行。
Java实验指导书2013版
第一部份绪论 (2)本课程实验的作用与任务 (2)本课程实验的基础知识 (2)本课程实验教学项目及其教学要求 (2)第二部份基本实验指导 (4)实验一:Java基本语法 (4)实验三:Java面向对象程序设计(一) (9)实验五:Java常用类 (18)实验七:Java集合 (21)实验九:GUI图形用户界面 (26)第一部份绪论本课程实验的作用与任务使学生进一步深刻理解Java语言基本概念、语法规则及程序结构,熟练掌握Java语言程序设计的基本方法,提高利用Java在网络环境下开发、设计应用程序的能力,从而进一步培养学生的创新能力和解决实际问题的能力。
熟悉JDK工具的编程和调试环境;熟练掌握选择和循环结构的程序设计;熟练掌握面向对象的程序设计思想,包括系统类的应用和用户自定义类;充分理解类的三种的特性:封装、继承和多态,特别是通过接口和抽象类理解多态;掌握图形用户界面的设计,特别是事件处理;掌握包的使用;掌握常用的输入输出流类的应用。
最后能根据实验的要求认真完成实验报告。
本课程实验的基础知识Java的基本数据类型包括:byte,short,int,long,double,char。
Java的数组属于引用类型的数据,是将相同类型的数据按顺序组成的一种符合数据类型。
Java的运算符有算术运算符、关系运算符、逻辑运算符、位运算符和赋值运算符,特别要注意它们的优先级。
Java的控制语句有if语句、switch语句、for语句、while语句、do-while语句。
类是组成Java程序的基本要素,类有两个重要的成员:成员变量和方法。
类是创建对象的模板,类将对象的属性和功能封装为一个整体。
成员变量和类变量的区别、实例方法和类方法的区别、方法的重载、成员的访问权限等都是实验课程所依据的重要理论。
继承、多态、接口、包及内部类都是Java中非常重要的概念。
Java使用“流”来读写数据。
Java的输入输出工作是通过FileInputStream类、FileReader 类、BufferedReader类、ByteArrayInputStream类、ByteArrayOutputStream类等完成的。
西北工业大学java实验报告.
Forth.java——
说明:编写图形界面的Java Applet,接受用户输入的一个整形数和一个浮点型数,单击按钮求两数之和。
实验1-5:
WaysOfTakingMoney.java——
说明:小明有5分、2分、1分硬币,想拿出1元钱,有几种拿法?给出所有拿法。实现方式不限。
在此题中运用了穷举法,列出了各种取法。
实验5-1:
FileInfor.java——
说明:编写一个图形化小工具,功能类似系统工具dir,可查看用户给定文件的创建时间、文件类型、文件大小等信息。
创建时间、文件大小等信息可直接通过file类取得,文件类型需要写方法判断,接受用户输入的文件名,截取其后缀,根据其后缀判断文件的类型。例如后缀为.java的是Java的源程序文件,后缀为.txt的是文本文件。注意提高程序的容错性(输入的格式的多样性和不确定性)。
实验4-1:
(1)Rectangular1.java——
(2)Rectangular2.java——
说明:在实验3第3题的基础上,分别实现下列5个步骤的要求。
Step1:
为实验3中定义的矩形类派生一个子类:正方形类。正方形类的操作同样是求周长和面积。则这个子类除了从父类继承来的方法之外,还需要定义哪些方法?列出正方形类的所有域与方法。编程验证所编写的正方形类。
在做本本题时原本真对26个字母分别设计了变量,后来进行了优化,运用了数组变量,大大减少了代码量。
实验4-3:
Palindrome.java——
说明:采用递归方法编程,检查一个任意给定的字符串是否是回文。
------------------------------------------------------------
java组件及事件处理实验总结
Java组件及事件处理实验总结一、实验目的本次实验旨在深入理解Java组件及事件处理机制,掌握Java Swing框架的使用,熟悉Java GUI应用程序的开发流程,提高解决实际问题的能力。
二、实验内容1.组件介绍与使用在实验中,我们学习了Java的GUI组件,包括标签(JLabel)、按钮(JButton)、文本框(JTextField)等。
通过实例化组件、设置属性、添加事件监听器等操作,我们了解了如何将这些组件用于构建GUI应用程序。
2.事件处理机制我们学习了Java的事件处理机制,包括事件监听器、事件对象等。
通过实现ActionListener接口,我们学会了如何处理按钮点击、菜单项选择等事件。
在实验中,我们还学习了如何创建自定义事件及其监听器。
3.布局管理器布局管理器是用于控制组件在容器中排列的机制。
在实验中,我们学习了常见的布局管理器,如流式布局(FlowLayout)、边框布局(BorderLayout)和卡片布局(CardLayout)等。
通过使用不同的布局管理器,我们了解了如何优化组件的布局,提高用户界面的友好性。
4.菜单与工具栏在实验中,我们学习了如何创建菜单和工具栏,并添加了相应的菜单项和按钮。
通过实现ActionListener接口,我们学会了如何处理菜单项选择和工具栏按钮点击事件。
5.事件分派机制我们还学习了Java的事件分派机制,即事件是如何从源组件传递到目标组件的。
通过分析示例程序,我们了解了事件分派机制的核心概念,如事件源、事件监听器、事件对象等。
三、实验总结通过本次实验,我们深入理解了Java组件及事件处理机制,掌握了Java Swing框架的使用。
实验中,我们不仅学习了基本组件的使用和事件处理机制,还学习了如何优化组件布局、创建菜单和工具栏等高级操作。
此外,我们还对Java的事件分派机制有了更深入的了解。
在实验过程中,我们遇到了一些问题,如组件重叠、事件处理程序无法正常工作等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
String operator=teacher.giveOperator(); textOne.setText(""+number1); textTwo.setText(""+number2); operatorLabel.setText(operator); message.setText("请回答"); textResult.setText(null); } if(【代码8】) //判断事件源是否是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(); } } public class MainClass { public static void main(String args[]) { ComputerFrame frame; frame=【代码9】//创建窗口,其标题为:算术测试 } }
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); 【代码4】//将当前窗口注册为getProblem的ActionEvent事件监视 器 【代码5】//将当前窗口注册为giveAnwser的ActionEvent事件监 视器 【代码6】//将当前窗口注册为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(【代码7】) //判断事件源是否是getProblem { int number1=teacher.giveNumberOne(100); int number2=teacher.giveNumberTwo(100);
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; } } public class ComputerFrame extends Frame implements ActionListener { TextField textOne,textTwo,textResult; Button getProblem,giveAnwser; Label operatorLabel,message; Teacher teacher; ComputerFrame(String s) { super(s); teacher=new Teacher(); setLayout(new FlowLayout()); textOne=【代码1】 //创建textOne,其可见字符长是10 textTwo=【代码2】 //创建textTwo,其可见字符长是10 textResult=【代码3】 //创建textResult,其可见字符长是
Java实验项目三 组件与事件编程
第1部分 [实验目的]
1、掌握java 图形用户界面设计常用类及其各自重要方法的应 用。 2、掌握java 事件处理模式熟练掌握文本框上事件处理的方 法。
组件与事件处理
[实验要求]
1、 复习理论教学中所学的内容。 2、 认真进行实验预习,查阅参考书,书写源程序,书写实 验预习报告。 3、 认真总结实验并书写实验报告。 [实验课时] 2学时 [实验教学方式] 学生上机实验,教师随堂指导。
implements
SignalCanvas signal=null; String itemRed="红灯",itemYellow="黄灯",itemGreen="绿 灯"; public SignalFrame() { choice=【代码1】 //创建choice 【代码2】 //创建choice添加itemRed 【代码3】 //创建choice添加itemYellow 【代码4】 //创建choice添加itemGreen 【代码5】 //将当前窗口注册为choice的ItemEvent事件监视器 add(choice,BorderLayout.NORTH); try{ Class cs=Class.forName("SignalCanvas"); signal=(SignalCanvas)cs.newInstance(); add(signal,BorderLayout.CENTER); } catch(Exception e) { add(new Label("您还没有编写SignalCanvas 类"),BorderLayout.CENTER); } setBounds(100,100,360,300); setVisible(true); validate(); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } } ); } public void itemStateChanged(ItemEvent e) { String item= 【代码6】 // choice返回被选中的条目 int w=signal.getBounds().width; int h=signal.getBounds().height; int m=Math.min(w,h); signal.setRadius(m/6); if(item.equals(itemRed)) { if(signal!=null)
2、信号灯:请读懂下面模板程序,将其补充完整并调试运 行。
import java.awt.*; import java.applet.*; import java.awt.event.*;
public class SignalCanvas extends Canvas { int red,green,yellow,x,y,r; SignalCanvas() { setBackground(Color.white); } public void setRed(int r) { red=r; } public void setGreen(int g) { green=g; } public void setYellow(int y) { yellow=y; } public void setPosition(int x,int y) { this.x=x; this.y=y; } public void setRadius(int r) { this.r=r; } public void paint(Graphics g) { if(red==1) { g.setColor(Color.red); } else if(green==1) { g.setColor(Color.green); } else if(yellow==1) { g.setColor(Color.yellow); } g.fillOval(x,y,2*r,2*r); } } public class SignalFrame extends Frame ItemListener { Choice choice;
[实验内容]
1、算术测试:请读懂下面模板程序,将其补充完整并调试运 行。
import java.awt.*; import java.awt.event.*; 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; }