JAVA语言的图形用户界面的设计与实现.docx

上传人:b****2 文档编号:916670 上传时间:2023-04-30 格式:DOCX 页数:28 大小:95.90KB
下载 相关 举报
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的AWT库:

abstractwindowstoolkit。

三、图形用户界面的构成:

是一组图形界面成份和界面元素的有机组合。

四、容器:

用来组织其它界面成份和元素的单元。

五、控制组件:

是图形用户界面的最小单位。

六、用户自定义成份:

是用户绘制的几何图形、图案组成的,它们只起装作用,不能响应事件。

用户自定义成份

一、Graphics类与用户自定义成份:

Graphics类提供了很多绘制图形和文字的方法。

这些方法主要是通过方法:

paint(Graphicsg)来实现的。

在这里要注意图形坐标与平面坐标的区别。

二、绘制简单图形:

1、画直线:

方法是:

voiddrawLine(intstartx,intstarty,intendx,intendy);

2、画矩形:

方法是:

voiddrawRect(inttop,intleft,intwidth,intheight);

voidfillRect(inttop,intleft,intwidth,intheight);

voiddrawRoundRect(inttop,intleft,intwidth,intheight,intxDiam,intyDiam);

voidfillRoundRect(inttop,intleft,intwidth,intheight,intxDiam,intyDiam);

voiddraw3DRect(inttop,intleft,intwidth,intheight,booleand);

voidfill3DRect(inttop,intleft,intwidth,intheight,booleand);

3、画圆和椭圆:

方法是:

voiddrawOval(intx,inty,intwidth,intheight);

voidfillOval(intx,inty,intwidth,intheight);

4、画弧:

方法是:

voiddrawArc(intx,inty,intwidth,intheight,intstartAngle,intendAngle);

voidfillArc(intx,inty,intwidth,intheight,intstartAngle,intendAngle);

5、画多边形:

方法是:

voiddrawPolygon(intx[],inty[],intnumpoints);

voidfillPolygon(intx[],inty[],intnumpoints);

三、绘制文本:

Graphics类提供了三个与绘制文本有关的方法:

drawByte()、drawChars()、drawString()。

这三个方法一般要和Font、FontMetrics类一起使用。

用Font类可以设定字体、字体的样式及大小;用FontMetrics则可以记录和获取当前字体的规格等说明。

Font类有关的方法有:

Font(Stringname,intstyle,intsize):

创建字体;

setFont(Fontobj):

设置字体;

getFont():

获得当前Graphics上所使用的字体;

String[]getFontList():

返回当前系统可用字体名称数组;

getSize()、getStyle()、isPlain()、isBold()、isItalic();

四、设置颜色:

Java的颜色类:

Color允许用户任意选择自己所需要的颜色。

Color类中定义了一些常用的颜色实例,如下表所示:

颜色名称

RGB值

白色Color.white

255.255.255

黑色Color.blank

0.0.0

亮淡灰Color.lightGray

192.192.192

灰色Color.gray

128.128.128

暗灰Color.darkGray

64.64.64

红色Color.red

255.0.0

绿色Color.green

0.255.0

蓝色Color.blue

0.0.255

黄色Color.yellow

255.255.0

紫(洋)红Color.Magenta

255.0.255

蓝色Color.blue

0.0.255

青色Color.cyan

0.255.255

青蓝Color.cyan

0.255.255

粉红Color.pink

255.175.175

橘色Color.orange

255.200.0

Color类中提供了以下方法:

Color(intcolor1,intcolor2,intcolor3);创建颜色

Color(intred,intgreen.intblue);

Color(intrgbValue);

Color(floatred,floatgreen,floatblue);

setForeground();

setBackground();

setColor();

getColor();

getRed()、getGreen()、getBlue()、getRGB()。

五、显示图像:

Java中处理图像的类是:

Image,它也是AWT中的类库之一。

Java目前支持的图像格式有:

GIF和JPEG两种。

对图像操作一般可为三步:

创建、加载和显示。

1、图像的创建:

可利用以下方法:

ImagecreateImage(ImageProducerimgProd);

ImagecreateImage(intwidth,intheight);

2、图像的加载:

可利用以下方法:

ImagegetImage(URLurl);

ImagegetImage(URLurl,StringimageName);

3、图像的显示:

利用的方法为:

booleandrawImage(ImageimgObj,intx,inty,ImageObserverimgOb);

显示图像是通过Graphics类的drawImage()实现的。

其中:

imgOb是一个ImageObserver接口对象,它用来监测图像加载的过程。

六、动画制作:

Java不仅提了对图形、图像的支持,而且还允许用户实现连续图像的播放,即动画技术。

Java对动画的处理是:

首先动画图像一次性从网络上下载完毕或在不影响动画效果的前提下分若干次下载,下载后的图像存放于数组或向量中,用一指针顺序提取,然后逐一显示到屏幕上。

当然动画制作过程中会出现一些意想不到的效果。

闪烁便是其中之一。

克服它的技术有二:

一是改写update()方法,内定的update()方法是先清除整个画面,然后再调用方法paint()显示图像,改写之后的update()方法为:

publicvoidupdate(Graphicsg)

{

paint(g);

}

二是利用双缓冲技术,双缓冲技术如下:

1、在图形缓冲区内创建将要使用的图形对象:

offscreenimage;

2、在Applet的init()方法中,实例化offscreenimage对象;

3、将要画到屏幕上的图像,转画到offscreenimage上;

4、将offscreenimage上的图像,一次性的画到Applet的画面上;

5、改写update()方法。

Java的事件处理

一、Java事件处理机制:

事件委托处理。

事件处理是GUI编程的核心,Java中的事件就是对象。

Java.awt.event包中定义了丰富的事件类型层次。

面向对象编程的一个基本原则就是让最适合完成任务的对象完成任务。

指定一个对象处理组件事件的过程称为委托(delegation)。

事件处理对象称为听众(Listener)。

要让组件的某个活动事件的处理委托给某个听众,就要执行这个组件的addActionListener()方法,传递所要听众的引用。

每个组件类都针对该组件产生的每种事件有个addxxxListener()方法。

如下面的程序:

(ButtonDelegateTest.java)

importjava.awt.*;

importjava.awt.event.*;

publicclassButtonDelegateTestextendsjava.applet.Applet

{

publicvoidinit(){

Buttonb=newButtob(“Ihavealistener!

”);

add(b);

ActionListenerlistener=newTestListener();

b.addActionListener(listener);

}

classTestListenerimplementsActionListener{

publicvoidactionPerformed(ActionEvente){

System.out.println(“Listenerhere:

thebuttonwasclicked.”);

}

}

}

上面的程序就使用了事件委托模型:

听众:

listener是一个实现了接口ActionListener的类对象。

接口ActionListener很简单,只有一个方法,它的实现为:

publicinterfaceActionListenerextendsEventListener{

publicabstractvoidactionPerformed(ActionEvente);

}

addActionListener()方法的声明要求听众参数实现这个接口:

publicvoidaddActionListener(ActionListenerlistener);

由于听众要实现这个接口,所以知道动作事件何时发生,系统可以安全地对听众调用actionPerformed()方法,因为听众必定有actionPerformed()方法。

当然,事件也可以委托给自己,即自我包含类实现事件的听众,构造器把自己作为听众加进行。

如:

importjava.awt.*;

importjava.awt.event.*;

publicclassSelfButton2extendsButtonimplementsActionListener{

publicSelfButton2(StringLabel){

super(label);

addActionListener(this);

}

publicvoidactionPerformed(ActionEvente){

System.out.println(“Action!

”);

}

}

三、Java事件的监听接口:

在java.awt.event包中,有11个事件监听接口,每个接口内部都包含了若干处理相关事件的抽象方法。

每个事件类都有一个监听者接口与之相对应,而事件类的每个具体事件类型都有一个具体的抽象方法与之相对应,当事件发生时,这个事件将被封装成一个事件类的对象作为实现参数传递给与之对应的具体方法,由这个方法负责响应并处理发生的事件。

如:

与ActionEvent类相对应的接口为ActionListener,那么凡是处理ActionEvent事件的类都必须实现这个接口,重载actionPerformed()方法,并由这个方法处理事件。

当然,InputEvent类由于它不对应具体事件,所以它没有接口;而MouseEvent类有两个接口与之相对应,一个是MouseListener,处理单击事件,另一个是MouseMotionListener,处理移动和拖动事件。

GUI标准组件概述

使用基本组件的步骤为:

1、创建基本组件;2、放置到合适位置;3、创建组件对象的监听者。

由于Component类是所有awt组件的抽象父类,它的常用方法为:

publicvoidadd(PopupMenupopup):

publicColorgetBackground():

publicFontgetFont():

publicColorgetForeground():

publicGraphicsgetGraphics():

publicvoidrepaint():

publicvoidsetBackground():

publicvoidsetFont():

publicvoidsetSize():

publicvoidsetVisible():

标签、按钮与动作事件

一、标签(Label):

它的常用方法有

Label():

Label(Stringstr):

Label(Stringstr,intalignment):

其中alignment的取值为:

LEFT、CENTER、RIGHT。

publicvoidsetText(Stringstr):

publicStringgetText():

publicintgetAlignment():

publicvoidsetAlignment(intalignment):

它不能发生事件。

二、按钮(Button):

它的作用是用来触发某个事件。

按钮在屏幕上显示的外形依赖于Java运行系统所在有具体平台,在AWT中用户无法改变按钮的外形,但在AWT中实现了一个标准按钮的外观和行为。

用户可以通过调用它的方法来改变按钮的字体、文本、前景色和背景色。

它的常用方法有:

Button():

Button(Stringstr):

publicvoidsetLabel(Stringstr):

publicStringgetLabel():

按钮可以引发动作事件:

ACTION_EVENT,具体响应由实现了接口ActionListener的监听者的actionPerformed(ActionEvente)方法实现。

在该方法中,我们可以通过e.getSource()获取引发动作事件的按钮的引用,也可以通过e.getActionCommand()方法获取按钮的标签或事先为这个按钮设置的命令名。

三、动作事件(ActionEvent):

ActionEvent类只包含一个事件,即:

ACTION_PERFORMED。

能引发这个事件的动作有:

点击按钮、双击列表框中的选项、选择菜单项、在文本框中按回车键等。

ActionEvent类的主要方法有:

1、publicStringgetActionCommand():

它返回引发动作事件的命令名。

命令名可以通过setActionCommand()方法实现。

如:

Buttonbtn=newButton(“按钮标签”);

btn=setActionCommand(“命令名”);

btn.addActionListener(this);

那么在监听者按口的方法可以是:

publicvoidactionPerformed(ActionEvente){

if(e.getActionCommand()==“命令名”)

………}

当然我们也可以不专门设置命令名,此时命令名就是对象的标签名。

2、publicintgetModifiers():

如果引发动作时,用户也按了功能键,那么此方法返回功能键。

即:

ALT_MASK、CTRL_MASK、SHIFT_MASK、META_MASK.

文本框、文本域与文本事件

Java中用于文本处理的基本组件有:

TextFiled和TextArea,它们都是TextComponent类的子类。

一、文本事件(TextEvent):

TextEvent类只包含一个事件,即代表文本区域中文本变化的事件TEXT_VALUE_CHANGED,在文本域中改变文本时都将引发这个事件。

二、文本域的创建:

publicTextField():

publicTextField(intcols):

publicTextField(Stringstr):

publicTextField(Stringstr,intcols):

三、文本区的创建:

publicTextArea():

publicTextArea(introws,intcols):

publicTextArea(Stringstr):

publicTextArea(Stringstr,introws,intcols):

四、公共文本部件的特性:

publicvoidsetText(StringnewText):

publicStringgetText():

publicStringgetSelectedText():

publicintgetSelectionStart():

publicintgetSelectionEnd():

publicvoidSelect(intselectionStsrt,intselectionEnd):

publicvoidselectAll():

publicvoidsetEditable():

publicbooleanisEditable():

五、文本域的特性:

publicvoidsetEchoChar(charch):

publicchargetEchoChar():

publicbooleanechoCharIsSet():

publicintgetColumns():

六、文本区的特性:

publicvoidappendText(StringtextToAdd):

publicvoidinsertText(StringnewText,intposition):

publicvoidreplaceText(Stringstr,intstart,intend):

publicintgetColumns():

publicintgetRows():

七、事件响应:

1、TextComponent的事件:

TextEvent.

2、TextField的事件:

TextEvent、ActionEvent;

3、TextArea的事件:

TextEvent.

4、对TextEvent的处理过程为:

textField1.addTextListener(this);

而听众类需实现的方法为:

publicvoidtextValueChanged(TextEvente);

也可以通过e.getSoure()获得引发事件的文本对象的引用。

单、复选按钮,列表与选择事件

一、选择事件(ItemEvent):

ItemEvent类只包含一个事件,即代表选择项的选中状态发生变化的事件:

ITEM_STATE_CHANGED。

引发这个事件的动作有:

1、改变列表框类List对象选项的选中或不选中;

2、改变下拉列表框类Choice对象选项的选中或不选中;

3、改变复选按钮类Checkbox对象选项的选中或不选中;

4、改变菜单项CheckboxMenuItem对象选项的选中或不选中;

ItemEvent类的主要方法有:

1、publicItemSelectablegetItemSelectable():

2、publicObjectgetItem():

3、publicintgetStateChange():

ItemEvent.SELECTED、ItemEvent.DESELECTED.

二、复选按钮(Checkbox):

1、创建复选按钮:

publicCheckbox():

publicCheckbox(Stringlabel):

publicCheckbox(Stringlabel,booleanstate):

publicCheckbox(Stringlabel,booleaninitialState,CheckboxGroupgroup):

2、检查和设置复选按钮的状态:

用publicbooleangetState()方法。

如:

if(myCheckbox.getState())

{}

else

{}

则publicvoidsetState(booleanstate)用来设置状态。

3、监听复选按钮的变化:

实现ItemListener接口。

具体方法为:

addItemListener(ItemListener):

removeItemListener(ItemListener):

ItemListener接口中有一个方法:

publicvoiditemStateChanged(ItemEventevt).

三、单选按钮(CheckboxGroup):

单选按钮是复选框的特例,用户可以把一组复选框放置在同一个复选框组中就可以创建单选按钮组。

创建复选框组的方法为:

publicCheckboxGroup():

然后用户使用下列方法向复选组中加入单选按钮:

publicCheckbox(Stringlabel,booleaninitialState,CheckboxGroupgroup):

用户可以使用对每个复选框调用getState()方法或对CheckboxGroup组调用getSelectedCheckbox().而getSelectedCheckbox()返回的是当前被选中的复选框的引用。

单选按钮的事件响应和复选框一样。

四、下拉列表框(Choice):

它是多选一的界面

1、创建下拉列表框:

有创建和添加选项两个步骤。

Choicesize=newChoice();

size.add(“10”);

size.add(“20”);

size.add(“30”);

2、常用方法:

publicintgetSelectedIndex():

publicStringgetSelectedItem():

publicvoidselect(intindex):

publicvoidselect(Stringitem):

publicvoidadd(Stringitem):

publicvoidinsert(Stringitem,intindex):

publicvoidremove(intindex):

publicvoidremove(Stringitem):

publicvoidremoveAll():

3、事件响应:

下拉列也产生I

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

当前位置:首页 > 法律文书 > 调解书

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

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