java实验指导书学生用.docx
《java实验指导书学生用.docx》由会员分享,可在线阅读,更多相关《java实验指导书学生用.docx(30页珍藏版)》请在冰豆网上搜索。
java实验指导书学生用
实验一、安装JDK并熟悉java的运行环境
实验二、基本语法练习
实验三、面向对象编程实验(4)
实验四、异常处理实验
实验五、小应用程序实验
实验六、图形图像实验
实验七、GUI(图形用户接口)实验(4)
实验八、多线程实验
实验九、输入输出流实验(4)
实验十、数据库应用实验(4)
一、实验目的
熟悉JAVA的运行环境及学习简单的编程。
二、预习内容
安装工具软件的基本方法。
三、实验设备与环境
装有JAVA语言工具软件(JCreator)的微机若干
四、实验内容
安装JCreator及JAVA的核心编译程序J2SDK。
1、打开JCreator的安装盘安装JCreator。
2、在相同目录下安装J2SDK。
3、打开JCreator软件对J2SDK文件进行配置。
4、编写一应用程序,在屏幕上显示“HELLOWORLD”。
PulicclassHello
{
publicstaticvoidmain(Stringargs[])
System.out.println(“HELLOWORLD”);
}
5、编写一小程序实现上述功能:
在屏幕上显示“HELLOWORLD”。
实验结果
五、注意事项
⒈认真填写实验报告
⒉遵守实验室各项制度,服从实验指导教师的安排
⒊按规定的时间完成实验
六、说明
本次实验建议学时数2学时
七、实验总结与体会
⒈熟悉Java的基本语法
⒉编写应用程序接收命令行参数
⒊编写应用程序接收用户从键盘的输入
⒋掌握字符串与数组的基本方法
java编程的基本结构
⒈编写一个应用程序求若干个数的平均数,原始数字要求从命令行输入。
应用程序中main方法的参数String类型的数组args能接受用户从命令行键入的参数。
(1)编辑Average.java,设保存在D:
\myjava目录下。
classAverage
doublen,sun=0;
for(intl=0;l{sum=sum+Double.valueOf(arg[l].doubleValue();)}n=sum/args.length;System.out.println(“average=”+n);}}(2)编译。键入如下命令:D:\myjava>javaAverage.java(3)执行。键入如下命令。注意,命令行参数之间用空格分隔。D:\myjava>javaAverage.java“12.34”“34.45”“21212121”注意:1)参数的个数可以利用args.length来取得。2)参数“12.34”“34.45”“21212121”分别赋给了main方法的参数arges[0]、arges[1]和arges[2]。3)由于arges[0]、arges[1]和arges[2]是String类型的,所以要利用Double.valueOf(Strings)方法将String类型转化成Double类型,再用doubleValue()方法求出double类型的值。⒉编写一个应用程序,接受用户从键盘输入的摄氏温度,然后将其转化成等效的华氏度温度。方法一:利用System.in.read()方法可以接受从键盘输入的unicode码,编写一个循环取键值,循环出口为当输入回车时,即判断键值是否为13,若是,则退出循环。(1)编辑Accept.java,设保存在D:\myjava目录下。importjava.io.*;importjava.io.*;classAccpet{publicstaticvoidmain(String[]args){intc=0;Strings=“”;System.out.println(“输入摄氏度:(0<数值<100)”);//System.in.read()语句需要加try/cacth()捕获异常tyr{while(c!=13)//当输入的不是回车{c=Sytem.in.read();s=s+(char)c;//将int型转化成char型,再连接成字符串}}catch(Exceptione){}intcelsius=Intgeer.parseInt(s.trim());doublefahre=1.8*celsius+32;System.out.println(“转化成华氏度为:”+fahre);}}注意:1)in是System类的一个属性,System.in的返回类型是InputStream类型。输入字节流的父类,InputStream类中的read()方法可以读取一个用户从键盘上输入的键值。System.im.read()的返回值是整型,因此需要先转化成字符型后再连接成字符串。2)System.im.read()需要用try/catch机制来捕获异常。3)将字符串转化成响应的整型数值后再利用公式计算出华氏温度。方法二:由于InputStream类中的read()方法只能读取一个键值,所以需要利用循环才能读出用户从键盘输入的一串字符,有没有读取一行字符的命令呢?我们可以利用Java中类的嵌套来实现。由于BuffereReaser类有读取一行字符串的方法,所以可以这样去定义对象:BuffereReaserbr=newBuffereReaser(newInputStreamReader(System.in));(1)编辑Accpe1.java,设保存在D:\myjava目录下。ClassAccpt1{publibstaticvoidmain(Stringargs[]){Strings=“”;System.out.println(“输入摄氏度:(0<数值<100)”);BuffereReaserbr=newBuffereReaser(newInputStreamReader(System.in));try{s=br.readLine();}cath(Exceptione){}intcel=Integer.parseInt(s.trim());doublef=cel*1.8+32;System.out.println(s+“摄氏度转化成华氏度为:”+f);}}⒊编写应用程序,按升序顺序输出一维数组中的元素。排序的方法有很多,常用的有选择发和冒泡法,在此使用选择法。(1)编辑Sort.java,设保存在D:\myjava目录下。classSort{publicstaticvoidmain(Stringargs[]){。。。}}五、注意事项⒈认真填写实验报告⒉遵守实验室各项制度,服从实验指导教师的安排⒊按规定的时间完成实验六、说明⒈建议学时数2学时实验三、面向对象编程实验一、实验目的⒈掌握接口的编写及使用⒉理解继承、多态⒊掌握包的编写以及如何使用包中的类二、预习内容java的基本语法知识三、实验设备与环境装有JAVA语言工具软件(JCreator)的微机若干四、实验内容⒈接口的编写(1)编辑Interfaceclass.java,设保存在D:\myjava目录下。interfaceInterfaceclass{inti=4;intk=5;voidfunc1();intfunc2(intx);}(2)编辑UseInterface.java,设保存在D:\myjava目录下。classUseInterfaceimplementsInterfaceclass{intj;publicvoidfunc1()//在使用接口的类中一定要实现接口中的所有抽象方法{System.out.println(“func1=”+1);}publicintfunc2(inti){System.out.println(“func2=”+1);ieturni;}publicstaticvoidmain(Stringsrgs[]){//Interfaceclass.classx=newInterfaceclass.class();不能对接口进行实例化UseInterfacex=newUseInterface();x.func1();x.func2(k);}}⒉多态在工资系统中的应用设计一个根据雇员类型利用abstract方法和多态性完成工资单计算的程序。Employee是抽象类,Employee的子类有Boss(每星期发给他固定工资,而不计工作时间)、CommissionWorker(除基本工资外还根据销售额发放浮动工资)、PieceWorker(按其生产的产品数发放工资)、HourlyWorker(根据工作时间长短发放工资)。该例的Employee的每个子类都声明为final,因为不需要再继承它们生成子类。对所有雇员类型都使用earnings()方法,但每个人挣的工资按他所属的雇员类计算,所有雇员类都是从超类Earnings()派出生的。所有在超类中声明earnings()为抽象方法,并且对于每个子类都提供恰当的earnings()的实现方法。为了计算雇员的工资,程序仅仅使用雇员对象的一个超类引导并调用earnings()方法。在一个实际的工资系统中,各种Employee对象的引用可以通过一个Employee引用数组来实现。程序依次使用数组的每个元素(Employee引用)调用每个对象的employee()方法。⒊包的建立与使用(1)编辑Calculate.java,设保存在D:\myjava目录下。packagemypackage;publicclassCalculate{privateinta;publicCalculate(inta){this.a=a;System.out.printl(“fromconstrartion”+this.a);}publicdoublevolume(doubleheight,doublewidth,douledepth){returnheight*width*depth;}intadd(intx,inty){returnx+y;}protectedvoida(){System.out.println(“fromconstration”+a);}}编译,查看D:\myjava目录下是否生成了myoackage文件夹,在该文件夹中是否有Calculate.class文件。(2)编辑Interfaceclass.java,设保存在D:\myjava目录下。importmypackage.Calculate;classPackageDemo{publicstaticvoidmain(stringags[]){Calculatec=newCalculate(10);doubles=c.volume(5,6,7);System.out.println(s);//intb=c.add(5,6);//c.a();}}五、注意事项⒈认真填写实验报告⒉遵守实验室各项制度,服从实验指导教师的安排⒊按规定的时间完成实验实验四、异常处理实验一、实验目的⒈异常的生产及捕获⒉自定义异常及其使用二、预习内容面向对象的基本知识三、实验设备与环境装有JAVA语言工具软件(JCreator)的微机若干四、实验内容⒈异常的捕获计算两数相除并输出结果。使用两个catch子句,分别捕捉除数为0的异常和参数输入有误异常。编译并运行,当输入除数为0时,将有异常出现,当输入的不是整数时,如将30输成了3o,出现的是另一种异常。⒉定义异常编写程序包含自定义异常,当输入数值为13和4时抛出该异常。编辑Ex2.java,设保存在D:\myjava目录下。classEx2extendsException{Ex2(Stringmsg){super(msg);}}classMyEx{privateintx;voidsetX(intx){this.x=x;}voidf1()throwsEx2{if(x==13)thrownewEx2(“Idon’tlike13!”);elseif(x==4)thrownewEx2(“Idon’tlike4!”);elsesystem.out.println(100/x);}publicstaticvoidmain(Sstringargs[]){MyExa=newMyEx();try{a.steX(5);//a.setX(13);//a.setX(4);//a.setX(0);a.f1();}catch(Exe){Sytem.out.println(“getmessage:”+e.getMessage());}}编译并运行,分别取消注释上面程序中被注释的语句。当释放a.setX(13)语句后,查看运行结果,当释放a.setX(4)语句后,查看运行结果。五、注意事项⒈认真填写实验报告⒉遵守实验室各项制度,服从实验指导教师的安排⒊按规定的时间完成实验六、说明⒈建议学时数2学时实验五、小应用程序实验一、实验目的⒈掌握小应用程序的结构及生命周期⒉掌握带参数小应用程序的编写二、预习内容网页制作的相关知识三、实验设备与环境装有JAVA语言工具软件(JCreator)的微机若干四、实验内容⒈小应用程序生命周期小应用程序有init()、start()、stop()和detroy()方法,当小应用程序初次加载时,先执行init(),再执行stop()方法。当小应用程序的窗口从后台恢复到前台时,如当小应用程序的窗口被最小化时,会执行stop()方法,窗口还原时会执行start()方法,这时不执行init()和detroy()方法。当小应用程序被关闭时,再执行detroy()方法。编辑AppLife.java,设保存在D:\myjava目录下。Importjava.applet.*;importjava.awt.*;PublicclassAppLifeextendsApplet{staticinta,b,c,d;intxl=150,yl=50,x2=300,y2=50;putlicvoidpaint(Graphicsg){g.drawLine(x1,,y1,x1,y2);g.drawLine(x1,y1,x1,y1+a);g.drawString(“init”,x1,y1);g.drawLine(x1+50,y1,x1+50,y1+b);g.drawString(“start”,x1+50,y1);g.drawLine(x1+100,y1,x1+100,y1+c);g.drawString(“stop”,x1+100,y1);g.drawLine(x1+150,y1,x1+150,y1+d);g.drawString(“destory”,x2,y2);}publicvoidinit(){a+=50;repaint();}publicvoidstart()}b+=50;repaint();}publicviodstop(){c+=50;repaint();}publicvioddestroy(){d+=50;repaint();}}注意问题:(1)编译AppLife.java。(2)编辑AppLife.htm,要求存放在与AppLife.class相同的目录下。(3)运行AppLife.htm。⒉带参数的小应用程序编写一个小应用程序,由htm文件向其传递参数。编写App.java,设保存在D:\myjava目录下。importjava.applet.*;importjava.awt.*;publicclassAppextendsApplet{Stringname;publicvoidinit(){name=getParameter(“name”);}publicvoidpaint(Graphicsg){g.drawString(“Welcome”+name,120,50);}}执行步骤:(1)编译App.java。(2)编辑App.htm,要求与App.class在同一目录下。执行App.htm。五、注意事项⒈认真填写实验报告⒉遵守实验室各项制度,服从实验指导教师的安排⒊按规定的时间完成实验六、说明⒈建议学时数2学时实验五、小应用程序实验实验六、图形图像实验一、实验目的⒈了解Java.awt包中提供的Font类、Color类、Graphics类和Image类⒉掌握设置控制GUI组件字体和颜色的一般方法⒊掌握使用Graphics绘制线条、矩形、圆角矩形、椭圆、弧等基本图形⒋掌握使用Graphics绘制图象二、预习内容绘制图形的基本方法三、实验设备与环境装有JAVA语言工具软件(JCreator)的微机若干四、实验内容⒈绘制图形编辑Gra.java,保存在D:\myjava目录下。importjava.applet.*;importclasspaint(Graphicdsg){Fontf1=newFont(“Helvetica”,Font.PLAIN,28);publicvoidpaint(Graphicdsg){g.setFont(f1);g.setCorol(Corcol,blue);//在(120,50)处输出字符串“我是美丽的大气球!”g.setCorol(Corol.green);g.drawOval(100,20,200,100);g.setCorol(Corol.black);g.fillOval(180,60,10,10);g.fillOval(180,60,10,10);g.setCorol(Cotol.red);g.drawArc(130,50,50,180,180);g.setColor(Color.yellow);g.drawLine(150,120,150,250);}}(1)编译Gra.java。(2)编辑Gra.java,要求与Gra.class在同一目录下。(3)运行Gra.htm。五、注意事项⒈认真填写实验报告⒉遵守实验室各项制度,服从实验指导教师的安排⒊按规定的时间完成实验六、说明⒈建议学时数2学时 实验七、GUI(图形用户接口)实验一、实验目的⒈掌握用MouseListener和MouseMotionListener接口处处理鼠标事件MouseEvent的方法。⒉掌握制作菜单及处理菜单事件的方法⒊掌握创建对话框及定位、显示、激活和关闭对话框的方法二、预习内容图形用户接口编程所需的基本类及使用方法三、实验设备与环境装有JAVA语言工具软件(JCreator)的微机若干四、实验内容⒈制作一个简单的画板编辑Mou.java,设保存在D:\myjava目录下。importjava.applet.*;importjava.awt.*;importjava.awt.event.*;publicclassMouextendsAppletimplementsMouseMotionListener{intx=-1,y=-1;publicvoidinit(){setBackground(Color.cyan);addMouseMotionListener(this);}publicvoidpaint(Graphicsg){if(x!=-1&&y!=-1){g.setColor(Color.red);g.drawLine(x,y,x,y);}}publicvoidmouseDragged(MouseEvente){x=(int)e.getX();y=(int)e.gety();}publicvoidmouseMoved(MouseEvente){}//由于使用的是Listener,需要将其他不重载的方//法,列举在这里publicvoidupdate(Graphicsg){paint(g);}}编译并运行查看结果.⒉菜单的编写编辑TestMenu.java,设保存在D:\myjava目录下。importjava.applet.*;importjava.awt.*;importjava.awt.event.*;publicclassTestMenu//定义主类{publicstaticvoidmain(Stringa
sum=sum+Double.valueOf(arg[l].doubleValue();)
n=sum/args.length;
System.out.println(“average=”+n);
(2)编译。
键入如下命令:
D:
\myjava>javaAverage.java
(3)执行。
键入如下命令。
注意,命令行参数之间用空格分隔。
\myjava>javaAverage.java“12.34”“34.45”“21212121”
注意:
1)参数的个数可以利用args.length来取得。
2)参数“12.34”“34.45”“21212121”分别赋给了main方法的参数arges[0]、arges[1]和arges[2]。
3)由于arges[0]、arges[1]和arges[2]是String类型的,所以要利用Double.valueOf(Strings)方法将String类型转化成Double类型,再用doubleValue()方法求出double类型的值。
⒉编写一个应用程序,接受用户从键盘输入的摄氏温度,然后将其转化成等效的华氏度温度。
方法一:
利用System.in.read()方法可以接受从键盘输入的unicode码,编写一个循环取键值,循环出口为当输入回车时,即判断键值是否为13,若是,则退出循环。
(1)编辑Accept.java,设保存在D:
importjava.io.*;
classAccpet
publicstaticvoidmain(String[]args)
intc=0;
Strings=“”;
System.out.println(“输入摄氏度:
(0<数值<100)”);
//System.in.read()语句需要加try/cacth()捕获异常
tyr
while(c!
=13)//当输入的不是回车
c=Sytem.in.read();
s=s+(char)c;//将int型转化成char型,再连接成字符串
catch(Exceptione){}
intcelsius=Intgeer.parseInt(s.trim());
doublefahre=1.8*celsius+32;
System.out.println(“转化成华氏度为:
”+fahre);
1)in是System类的一个属性,System.in的返回类型是InputStream类型。
输入字节流的父类,InputStream类中的read()方法可以读取一个用户从键盘上输入的键值。
System.im.read()的返回值是整型,因此需要先转化成字符型后再连接成字符串。
2)System.im.read()需要用try/catch机制来捕获异常。
3)将字符串转化成响应的整型数值后再利用公式计算出华氏温度。
方法二:
由于InputStream类中的read()方法只能读取一个键值,所以需要利用循环才能读出用户从键盘输入的一串字符,有没有读取一行字符的命令呢?
我们可以利用Java中类的嵌套来实现。
由于BuffereReaser类有读取一行字符串的方法,所以可以这样去定义对象:
BuffereReaserbr=newBuffereReaser(newInputStreamReader(System.in));
(1)编辑Accpe1.java,设保存在D:
ClassAccpt1
publibstaticvoidmain(Stringargs[])
(0<数值<100)”);
try
s=br.readLine();
}cath(Exceptione){}
intcel=Integer.parseInt(s.trim());
doublef=cel*1.8+32;
System.out.println(s+“摄氏度转化成华氏度为:
”+f);
⒊编写应用程序,按升序顺序输出一维数组中的元素。
排序的方法有很多,常用的有选择发和冒泡法,在此使用选择法。
(1)编辑Sort.java,设保存在D:
classSort
。
⒈建议学时数2学时
实验三、面向对象编程实验
⒈掌握接口的编写及使用
⒉理解继承、多态
⒊掌握包的编写以及如何使用包中的类
java的基本语法知识
⒈接口的编写
(1)编辑Interfaceclass.java,设保存在D:
interfaceInterfaceclass
inti=4;
intk=5;
voidfunc1();
intfunc2(intx);
(2)编辑UseInterface.java,设保存在D:
classUseInterfaceimplementsInterfaceclass
intj;
publicvoidfunc1()//在使用接口的类中一定要实现接口中的所有抽象方法
System.out.println(“func1=”+1);
publicintfunc2(inti)
System.out.println(“func2=”+1);
ieturni;
publicstaticvoidmain(Stringsrgs[])
//Interfaceclass.classx=newInterfaceclass.class();不能对接口进行实例化
UseInterfacex=newUseInterface();
x.func1();
x.func2(k);
⒉多态在工资系统中的应用
设计一个根据雇员类型利用abstract方法和多态性完成工资单计算的程序。
Employee是抽象类,Employee的子类有Boss(每星期发给他固定工资,而不计工作时间)、CommissionWorker(除基本工资外还根据销售额发放浮动工资)、PieceWorker(按其生产的产品数发放工资)、HourlyWorker(根据工作时间长短发放工资)。
该例的Employee的每个子类都声明为final,因为不需要再继承它们生成子类。
对所有雇员类型都使用earnings()方法,但每个人挣的工资按他所属的雇员类计算,所有雇员类都是从超类Earnings()派出生的。
所有在超类中声明earnings()为抽象方法,并且对于每个子类都提供恰当的earnings()的实现方法。
为了计算雇员的工资,程序仅仅使用雇员对象的一个超类引导并调用earnings()方法。
在一个实际的工资系统中,各种Employee对象的引用可以通过一个Employee引用数组来实现。
程序依次使用数组的每个元素(Employee引用)调用每个对象的employee()方法。
⒊包的建立与使用
(1)编辑Calculate.java,设保存在D:
packagemypackage;
publicclassCalculate
privateinta;
publicCalculate(inta)
{this.a=a;
System.out.printl(“fromconstrartion”+this.a);
publicdoublevolume(doubleheight,doublewidth,douledepth)
returnheight*width*depth;
intadd(intx,inty)
returnx+y;
protectedvoida()
System.out.println(“fromconstration”+a);
编译,查看D:
\myjava目录下是否生成了myoackage文件夹,在该文件夹中是否有Calculate.class文件。
(2)编辑Interfaceclass.java,设保存在D:
importmypackage.Calculate;
classPackageDemo
publicstaticvoidmain(stringags[])
Calculatec=newCalculate(10);
doubles=c.volume(5,6,7);
System.out.println(s);
//intb=c.add(5,6);
//c.a();
⒈异常的生产及捕获
⒉自定义异常及其使用
面向对象的基本知识
⒈异常的捕获
计算两数相除并输出结果。
使用两个catch子句,分别捕捉除数为0的异常和参数输入有误异常。
编译并运行,当输入除数为0时,将有异常出现,当输入的不是整数时,如将30输成了3o,出现的是另一种异常。
⒉定义异常
编写程序包含自定义异常,当输入数值为13和4时抛出该异常。
编辑Ex2.java,设保存在D:
classEx2extendsException
Ex2(Stringmsg)
super(msg);
classMyEx
privateintx;
voidsetX(intx)
this.x=x;
voidf1()throwsEx2
if(x==13)
thrownewEx2(“Idon’tlike13!
”);
elseif(x==4)
thrownewEx2(“Idon’tlike4!
else
system.out.println(100/x);
publicstaticvoidmain(Sstringargs[])
MyExa=newMyEx();
a.steX(5);
//a.setX(13);
//a.setX(4);
//a.setX(0);
a.f1();
catch(Exe)
Sytem.out.println(“getmessage:
”+e.getMessage());
编译并运行,分别取消注释上面程序中被注释的语句。
当释放a.setX(13)语句后,查看运行结果,当释放a.setX(4)语句后,查看运行结果。
⒈掌握小应用程序的结构及生命周期
⒉掌握带参数小应用程序的编写
网页制作的相关知识
⒈小应用程序生命周期
小应用程序有init()、start()、stop()和detroy()方法,当小应用程序初次加载时,先执行init(),再执行stop()方法。
当小应用程序的窗口从后台恢复到前台时,如当小应用程序的窗口被最小化时,会执行stop()方法,窗口还原时会执行start()方法,这时不执行init()和detroy()方法。
当小应用程序被关闭时,再执行detroy()方法。
编辑AppLife.java,设保存在D:
Importjava.applet.*;
importjava.awt.*;
PublicclassAppLifeextendsApplet
staticinta,b,c,d;
intxl=150,yl=50,x2=300,y2=50;
putlicvoidpaint(Graphicsg)
g.drawLine(x1,,y1,x1,y2);
g.drawLine(x1,y1,x1,y1+a);
g.drawString(“init”,x1,y1);
g.drawLine(x1+50,y1,x1+50,y1+b);
g.drawString(“start”,x1+50,y1);
g.drawLine(x1+100,y1,x1+100,y1+c);
g.drawString(“stop”,x1+100,y1);
g.drawLine(x1+150,y1,x1+150,y1+d);
g.drawString(“destory”,x2,y2);
publicvoidinit()
a+=50;
repaint();
publicvoidstart()
b+=50;
publicviodstop()
c+=50;
publicvioddestroy()
d+=50;
注意问题:
(1)编译AppLife.java。
(2)编辑AppLife.htm,要求存放在与AppLife.class相同的目录下。
(3)运行AppLife.htm。
⒉带参数的小应用程序
编写一个小应用程序,由htm文件向其传递参数。
编写App.java,设保存在D:
importjava.applet.*;
publicclassAppextendsApplet
Stringname;
name=getParameter(“name”);
publicvoidpaint(Graphicsg)
g.drawString(“Welcome”+name,120,50);
执行步骤:
(1)编译App.java。
(2)编辑App.htm,要求与App.class在同一目录下。
执行App.htm。
⒈了解Java.awt包中提供的Font类、Color类、Graphics类和Image类
⒉掌握设置控制GUI组件字体和颜色的一般方法
⒊掌握使用Graphics绘制线条、矩形、圆角矩形、椭圆、弧等基本图形
⒋掌握使用Graphics绘制图象
绘制图形的基本方法
⒈绘制图形
编辑Gra.java,保存在D:
importclasspaint(Graphicdsg)
Fontf1=newFont(“Helvetica”,Font.PLAIN,28);
publicvoidpaint(Graphicdsg)
g.setFont(f1);
g.setCorol(Corcol,blue);
//在(120,50)处输出字符串“我是美丽的大气球!
”
g.setCorol(Corol.green);
g.drawOval(100,20,200,100);
g.setCorol(Corol.black);
g.fillOval(180,60,10,10);
g.setCorol(Cotol.red);
g.drawArc(130,50,50,180,180);
g.setColor(Color.yellow);
g.drawLine(150,120,150,250);}}
(1)编译Gra.java。
(2)编辑Gra.java,要求与Gra.class在同一目录下。
(3)运行Gra.htm。
实验七、GUI(图形用户接口)实验
⒈掌握用MouseListener和MouseMotionListener接口处处理鼠标事件MouseEvent的方法。
⒉掌握制作菜单及处理菜单事件的方法
⒊掌握创建对话框及定位、显示、激活和关闭对话框的方法
图形用户接口编程所需的基本类及使用方法
⒈制作一个简单的画板
编辑Mou.java,设保存在D:
importjava.awt.event.*;
publicclassMouextendsAppletimplementsMouseMotionListener
intx=-1,y=-1;
setBackground(Color.cyan);
addMouseMotionListener(this);
if(x!
=-1&&y!
=-1)
g.setColor(Color.red);
g.drawLine(x,y,x,y);
publicvoidmouseDragged(MouseEvente)
x=(int)e.getX();
y=(int)e.gety();
publicvoidmouseMoved(MouseEvente){}//由于使用的是Listener,需要将其他不重载的方//法,列举在这里
publicvoidupdate(Graphicsg)
paint(g);
编译并运行查看结果.
⒉菜单的编写
编辑TestMenu.java,设保存在D:
publicclassTestMenu//定义主类
publicstaticvoidmain(Stringa
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1