第二次java实验.docx

上传人:b****2 文档编号:3003785 上传时间:2023-05-05 格式:DOCX 页数:28 大小:40.86KB
下载 相关 举报
第二次java实验.docx_第1页
第1页 / 共28页
第二次java实验.docx_第2页
第2页 / 共28页
第二次java实验.docx_第3页
第3页 / 共28页
第二次java实验.docx_第4页
第4页 / 共28页
第二次java实验.docx_第5页
第5页 / 共28页
第二次java实验.docx_第6页
第6页 / 共28页
第二次java实验.docx_第7页
第7页 / 共28页
第二次java实验.docx_第8页
第8页 / 共28页
第二次java实验.docx_第9页
第9页 / 共28页
第二次java实验.docx_第10页
第10页 / 共28页
第二次java实验.docx_第11页
第11页 / 共28页
第二次java实验.docx_第12页
第12页 / 共28页
第二次java实验.docx_第13页
第13页 / 共28页
第二次java实验.docx_第14页
第14页 / 共28页
第二次java实验.docx_第15页
第15页 / 共28页
第二次java实验.docx_第16页
第16页 / 共28页
第二次java实验.docx_第17页
第17页 / 共28页
第二次java实验.docx_第18页
第18页 / 共28页
第二次java实验.docx_第19页
第19页 / 共28页
第二次java实验.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

第二次java实验.docx

《第二次java实验.docx》由会员分享,可在线阅读,更多相关《第二次java实验.docx(28页珍藏版)》请在冰点文库上搜索。

第二次java实验.docx

第二次java实验

第七次实验:

GUI标准组件及事件处理

一、实验目的

了解图形用户界面基本组件:

框架、面板、按钮、标签、菜单、列表等的使用方法;了解如何使用布局管理器对组件进行管理;理解和掌握Java的事件处理机制。

二、实验要求

1.了解Java图像用户界面的开发,掌握基本组件的使用。

2.掌握编写独立运行的窗口界面的方法,了解菜单和对话框的使用方法。

3.理解Java的事件处理机制,掌握为不同组件编写事件处理程序的方法。

三、实验内容

(一)在面板中添加多个组件,并进行合理的布局

♦程序功能:

在一个框架(Frame)容器中添加一个面板(Panel)容器,并分别在框架和面板容器中添加组件并使用不同的布局管理方式。

♦请编写KY7_1.java程序文件,源代码如下:

importjava.awt.*;

importjava.awt.Color;

publicclassKY7_1

{

publicstaticvoidmain(Stringargs[])

{

Framef=newFrame();//创建一个框架f

Panelp=newPanel();//创建一个面板p

f.add(p);//把面板p添加到框架f中

p.setBackground(Color.blue);//设置面板p的背景颜色为蓝色

p.setLayout(newFlowLayout());//设置面板p的布局为流式布局

Labell=newLabel();

p.add(l);//在面板p中添加一个标签l

Buttonbutton1=newButton();

Buttonbutton2=newButton();

Buttonbutton3=newButton();

Buttonbutton4=newButton();

Buttonbutton5=newButton();

Buttonbutton6=newButton();

p.add(button1);

p.add(button2);

p.add(button3);

p.add(button4);

p.add(button5);

p.add(button6);//在面板p中添加六个按钮

Choicec=newChoice();//创建一个下拉列表c,

c.addItem("北京");//下拉列表c中有三个选项:

北京、上海和天津

c.addItem("上海");

c.addItem("天津");

p.add(c);//把列表c添加到面板p中

f.setBounds(400,400,400,400);

f.setVisible(true);

f.validate();//设置框架f的大小和可见性

}

}

(二)为窗口添加菜单,并处理由菜单项所引发的事件

♦程序功能:

在窗口中添加菜单条,在菜单条中添加菜单,并在菜单中添加菜单项和子菜单。

通过选择菜单项可以引发不同的事件,从而执行不同操作,例如点击“打开”菜单项可以打开一个“打开文件对话框”。

♦编写KY7_2.java程序文件,代码如下:

importjava.awt.*;

importjava.awt.event.*;

publicclassKY7_2extendsFrameimplementsActionListener

{staticFramef;

staticFileDialogfd1;

staticFileDialogfd2;

publicstaticvoidmain(Stringargs[])

{KY7_2k=newKY7_2();

f=newFrame();

MenuBarmb=newMenuBar();

Menum1=newMenu("文件");

Menum2=newMenu("帮助");

mb.add(m1);

mb.add(m2);

MenuItemm11=newMenuItem("打开");

MenuItemm12=newMenuItem("关闭");

MenuItemm13=newMenuItem("退出");

m1.add(m11);

m1.add(m12);

m1.add(m13);

MenuItemm21=newMenuItem("目录");

MenuItemm22=newMenuItem("索引");

MenuItemm23=newMenuItem("关于");

m2.add(m21);

m2.add(m22);

m2.add(m23);

Menum3=newMenu("编辑");

MenuItemm31=newMenuItem("复制");

MenuItemm32=newMenuItem("剪切");

MenuItemm33=newMenuItem("粘贴");

m3.add(m31);

m3.add(m32);

m3.add(m33);

m1.add(m3);

m11.addActionListener(k);

m13.addActionListener(k);

f.setSize(350,200);

f.setMenuBar(mb);

f.setVisible(true);}

publicvoidactionPerformed(ActionEvente)

{if(e.getActionCommand()=="打开")

{FileDialogfd1=newFileDialog(f,"open",FileDialog.SAVE);

fd1.setVisible(true);

}

if(e.getActionCommand()=="保存")

{FileDialogfd2=newFileDialog(f,"save",FileDialog.SAVE);

fd2.setVisible(true);

}}}

三、运行题中程序,然后按【思考问题】提示来分析、修改并体验程序。

【思考问题】

1基本容器JFrame比起Frame有何特点?

为什么这里定义了一个c=this.getContentPane();

Frame是awt中的组件,JFrame是swing中的组件,JFrame包含一个JRootPane作为其唯一的子容器。

this.getContentPane()的作用是初始化一个容器,用来在容器上添加一些控件

2采用了什么布局管理器,各组件按什么次序加入组件的?

FlowLayout,从左到右排列成一行。

3很多地方用到this,这个this指什么?

1、表示对当前对象的引用;2、表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名时进行区分;3、用于在构造方法中引用满足指定参数类型的构造器。

4分析事件执行方法actionPerformed里面的下面三条语句起何作用?

a=Double.valueOf(TOprand1.getText()).doubleValue();

b=Double.valueOf(TOprand2.getText()).doubleValue();

Result.setText(String.valueOf(sum));

读出T0prand1和T0prand2中的数,和写入Result中。

5程序中对按钮事件的监听采用了什么方法?

请修改成另外两种方法实验。

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

classEx9_1extendsJFrame

{JTextFieldTOprand1;

JTextFieldTOprand2;

JTextFieldResult;

JLabelLAdd,LSum;

JButtonBAdd,BClear;

Containerc=null;

publicEx9_1()

{TOprand1=newJTextField("0.0000");

TOprand2=newJTextField("0.0000");

Result=newJTextField("0.0000");

LAdd=newJLabel("+");

LSum=newJLabel("=");

BAdd=newJButton("加法");

BClear=newJButton("清除");

c=this.getContentPane();

c.setLayout(newFlowLayout());

c.add(TOprand1);

c.add(LAdd);

c.add(TOprand2);

c.add(LSum);

c.add(Result);

c.add(BAdd);

c.add(BClear);

this.pack();

this.setVisible(true);

PoliceManp=newPoliceMan();

BAdd.addActionListener(p);

BClear.addActionListener(newActionListener()

{

publicvoidactionPerformed(ActionEvente)

{TOprand1.setText("0.0000");

TOprand2.setText("0.0000");

Result.setText(String.valueOf("0.0000"));}});

this.addWindowListener(newWindowAdapter()

{publicvoidwindowClosing(WindowEvente)

{System.exit(0);

}

});}

classPoliceManimplementsActionListener

{

publicvoidactionPerformed(ActionEvente)

{doublea,b,sum;

a=Double.valueOf(TOprand1.getText()).doubleValue();

b=Double.valueOf(TOprand2.getText()).doubleValue();

sum=a+b;

Result.setText(String.valueOf(sum));

}

}

publicstaticvoidmain(Stringargs[])

{Ex9_1mainFrame=newEx9_1();

mainFrame.setSize(350,200);

mainFrame.setTitle("GUI实验一");

}}

6将定义的类classEx9_1extendsJFrameimplementsActionListener去掉继承extendsJFrame,功能不变,程序如何修改?

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

classEx9_1implementsActionListener

{TextFieldTOprand1;

TextFieldTOprand2;

TextFieldResult;

LabelLAdd,LSum;

ButtonBAdd,BClear;

Containerc=null;

publicEx9_1()

{Framef=newFrame();

TOprand1=newTextField("0.0000");

TOprand2=newTextField("0.0000");

Result=newTextField("0.0000");

LAdd=newLabel("+");

LSum=newLabel("=");

BAdd=newButton("加法");

BClear=newButton("清除");

c.setLayout(newFlowLayout());

c.add(TOprand1);

c.add(LAdd);

c.add(TOprand2);

c.add(LSum);

c.add(Result);

c.add(BAdd);

c.add(BClear);

c.pack();

c.setVisible(true);

c.setSize(350,200);

c.setTitle("GUI实验一");

BAdd.addActionListener(this);

BClear.addActionListener(this);

f.addWindowListener(newWindowAdapter()

{publicvoidwindowClosing(WindowEvente)

{System.exit(0);

}});}

publicvoidactionPerformed(ActionEvente)

{doublea,b,sum;

if(e.getSource()==BAdd)

{a=Double.valueOf(TOprand1.getText()).doubleValue();

b=Double.valueOf(TOprand2.getText()).doubleValue();

sum=a+b;

Result.setText(String.valueOf(sum));

}

if(e.getSource()==BClear)

{TOprand1.setText("0.0000");

TOprand2.setText("0.0000");

Result.setText(String.valueOf("0.0000"));}}

publicstaticvoidmain(Stringargs[])

{Ex9_1mainFrame=newEx9_1();

}}

7设置布局管理器为null,使组件摆放次序不变,重新修改程序。

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

classEx9_1extendsJFrameimplementsActionListener

{JTextFieldTOprand1;

JTextFieldTOprand2;

JTextFieldResult;

JLabelLAdd,LSum;

JButtonBAdd,BClear;

Containerc=null;

publicEx9_1()

{TOprand1=newJTextField("0.0000");

TOprand2=newJTextField("0.0000");

Result=newJTextField("0.0000");

LAdd=newJLabel("+");

LSum=newJLabel("=");

BAdd=newJButton("加法");

BClear=newJButton("清除");

c=this.getContentPane();

c.setLayout(null);

c.add(TOprand1);

c.add(LAdd);

c.add(TOprand2);

c.add(LSum);

c.add(Result);

c.add(BAdd);

c.add(BClear);

this.pack();

this.setVisible(true);

BAdd.addActionListener(this);

BClear.addActionListener(this);

this.addWindowListener(newWindowAdapter()

{publicvoidwindowClosing(WindowEvente)

{System.exit(0);

}

});

TOprand1.setBounds(00,00,50,20);

LAdd.setBounds(60,5,10,10);

TOprand2.setBounds(80,00,50,20);

LSum.setBounds(140,5,10,10);

Result.setBounds(160,00,50,20);

BAdd.setBounds(230,00,60,20);

BClear.setBounds(270,00,60,20);

}

publicvoidactionPerformed(ActionEvente)

{doublea,b,sum;

if(e.getSource()==BAdd)

{a=Double.valueOf(TOprand1.getText()).doubleValue();

b=Double.valueOf(TOprand2.getText()).doubleValue();

sum=a+b;

Result.setText(String.valueOf(sum));

}

if(e.getSource()==BClear)

{TOprand1.setText("0.0000");

TOprand2.setText("0.0000");

Result.setText(String.valueOf("0.0000"));

}}

publicstaticvoidmain(Stringargs[])

{Ex9_1mainFrame=newEx9_1();

mainFrame.setSize(350,200);

mainFrame.setTitle("GUI实验一");

}}

实验八java小程序Applet

一、实验目的

1.了解javaApplet基本框架结构、生命期。

2.了解Applet与HTML网页之间的应用关系。

3.了解HTML向Applet传递参数。

二、实验内容

1.JavaApplet基本框架和生命期。

Java源程序是project3\Ex8_1.java;网页HTML文件是page1.html。

(1)Ex8_1.java文件:

importjava.awt.*;

importjava.applet.*;

importjavax.swing.*;

publicclassEx8_1extendsApplet

{publicinti,j,k,l;

Fontfont;

publicvoidinit()

{i++;

font=newjava.awt.Font("TimesRoman",Font.PLAIN,36);

}

publicvoidstart()

{j++;

System.out.println("启动");

}

publicvoidstop()

{k++;

System.out.println("停止");

}

publicvoidpaint(Graphicsg)

{System.out.println("作图");

l++;

intred=(int)(Math.random()*250);

intgreen=(int)(Math.random()*250);

intblue=(int)(Math.random()*250);

g.setFont(font);

g.setColor(newColor(red,green,blue));

g.drawString("初始化次数:

"+String.valueOf(i),30,50);

g.drawString("启动次数:

"+String.valueOf(j),30,90);

g.drawString("停止次数:

"+String.valueOf(k),30,130);

g.drawString("作图次数:

"+String.valueOf(l),30,170);

}

}

(2)Page1.html文件:

code=Ex8_1.class

name=Ex8_1

width=320

height=200>

【实验步骤】

1在编辑区先选中Ex8_1.java,编译java源文件,形成Ex8_1.class。

2再选中page1.html,运行该程序。

3出现浏览页面之后,对页面进行缩放和展开,观察页面中初始化次数、启动次数、停止次数、作图次数的变化;注意字体颜色的变化;同时观察信息输出区中输出内容的变化。

【思考问题】

1通过实验观察,总结你对Applet框架中的基本方法在不同生命期的作用。

1.在不同的生命周期中init、start只启动时执行一次,stop只在退出时执行一次,随着i,j,k,l的变化,paint执行着不同的程序。

Init()完成初始化工作,紧接着自动调用start(),当用户由JAVAAPPLET所在WEB界面转到其他页面,调用stop(),后返回时,再次调用start()。

结束浏览时,自动调用destroy()。

Paint()可使JAVAAPPLET在容器上显示某些信息。

2字体大小及颜色的变化由哪些语句确定的?

请修改颜色为固定蓝色,字体从10到20之间变化。

intred=(int)(Math.random()*250);

intgreen=(int)(Math.random()*250);

intblue=(int)(Math.random()*250);

g.setFont(font);

g.setColor(

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2