第一范文网 - 专业文章范例文档资料分享平台

MyEclipse 6 第十八章 图形界面开发--AWT,Swing,SWT

来源:用户分享 时间:2025/5/28 21:21:55 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

开发功能和JIgloo的AWT/Swing/SWT开发能力。而Eclipse号称开源免费这么久了,真是没想到竟没有一个好使的免费界面设计器(Jigloo不能用于商业),只能说是利益使然了。

18.2 Applet开发

本节讨论Applet的基本开发,即以手工编码的方式进行开发,在18.2之后的章节介绍可视化开发。

18.2.1 Applet的HelloWorld开发

首先让我们新建一个Java项目:AppletTest,接着选择新建类文件applets. MyApplet,其代码清单如下:

MyApplet.java

package applets;

import java.awt.Color; import java.awt.Graphics; import java.awt.Image;

public class MyApplet extends java.applet.Applet {

public void paint(Graphics g) { g.setColor(Color.green);

g.fill3DRect(0, 0, getWidth() - 1, getHeight() - 1, true);

g.setColor(Color.decode(\)); g.drawString(\!\, 20, 20);

g.setColor(new Color(200, 20, 155)); g.drawString(\你好,自定义颜色!\, 20, 40);

Image img = getImage(this.getClass().getResource(\));

g.drawImage(img, 20, 60, this); } }

。这段代码定义了一个Applet,并覆盖了Applet的绘图方法paint(Graphics g),这个方法是由Applet的解释器调用的,传递的参数是一个图形对象。图形对象就是Java中作图的原始对象,可以画点,线,多边形,椭圆,文字,还可以画已经存在的图片。这段代码所执行的操作就是:设置画笔颜色为绿色,在坐标为(0,0)的点开始,以Applet自身显示的高度减1为3D的矩形高,Applet自身宽度减1为3D的矩形宽,填充绘制一个突起的3D矩形(g.fill3DRect()方法的最后一个参数即使突起或者凹陷,取值为boolean);随后从颜色字符串0x0000ff解析出Java中的颜色对象――蓝色,并在坐标为(20,20)的点开始绘

6

刘长炯著

制一个字符串Hello Applet!;接下来则使用RGB格式(物理上讲的,颜色的三原色,红绿蓝,每个的取值为0到255)定义了画笔的颜色为红200,20,155,并在坐标为(20,40)

自定义颜色!;随后使用Applet自带的getImage(URL)方法,的点开始绘制一个字符串你好,从相对路径读取了一张文件名为usb.jpg的图片(只支持格式jpg,gif和png),并在坐标为(20,60)的点绘制了这个图片,最后一个参数叫做ImageObserver,图片检测器,即applet自身,用来探测当图片加载完的时候才会绘制这张图。 这就是早期Applet的主要用法,即自己画图做动画,再加上播放声音,当时最大的用处就是做一些Applet的小游戏,例如俄罗斯方块等等,甚至还有公司做了很棒的游戏,例如有一次在EA看到了Applet版本的在线红警。

接下来我们来运行这个例子,选择菜单Run > Run As > 1 Java Applet,即可在Eclipse中启动并运行此页面,弹出的窗口和运行界面如图18.2所示。

图18.3 运行中的Applet

18.2.2 Applet的运行方式

那么这个Applet是怎么样运行的呢?让我们使用专业进程管理器看看运行时的命令行:D:\\Java\\MyEclipse6.0\\jre\\bin\\javaw.exe -Djava.security.policy=java.policy.applet

-classpath E:\\workspace\\AppletTest\\bin sun.applet.AppletViewer applets.MyApplet1210070089093.html,当前工作目录是E:\\workspace\\AppletTest\\bin\\,很好,去看看,原来运行时候莫名其妙多了两个文件java.policy.applet和applets.MyApplet1210070089093.html,文件内容分别是: applets.MyApplet1210070089093.html

java.policy.applet

/* AUTOMATICALLY GENERATED ON Tue Apr 16 17:20:59 EDT 2002*/

7

刘长炯著

/* DO NOT EDIT */

grant {

permission java.security.AllPermission; };

第二个文件是关系到Java的安全设置,有兴趣的读者可以查找Java的Policy(策略文件)相关的内容。第一个文件比较重要,因为Applet是在浏览器里运行的,前提是用HTML的APPLET标签将它嵌入页面中,就像在页面中嵌入Flash动画或者图片那样,必选的参数包括:code,它指定了Applet的类名,注意写法为包名.类名.class;另外两个参数width和height制定了Applet的面板在浏览器中占用的面积,即高度乘以宽度。那么,Applet的标准运行方式,就是嵌入到网页中使用,使用浏览器打开。此浏览器需要安装Java插件(Plug-in),才能正确的加载其中的类文件并执行。此时必须安装了JRE(可以从http://java.com/zh_CN/)下载或者检查是否安装好了JRE,另外安装完整版的JDK的时候,一般也有选择是否安装JRE选项。

OK,让我们总结一下普通用户运行Applet的必要前提: 1. 安装了JRE;

2. 安装了支持Java插件的浏览器(包括IE,Firefox,Mozilla,Opera等几乎所有主流浏

览器);

3. 正确开发和发布了Applet(一般来说网页文件和类文件位于同一个目录下)。

现在让我们试一试,在src目录下新建MyApplet.html,代码清单如下:

MyApplet Test

对不起,您的浏览器不支持Applet!

。然后打开项目所在的目录的类文件输出目录(例如/bin或者/classes),双击MyApplet.html在浏览器中打开,应该能够看到如下的界面:

8

刘长炯著

图18.4 浏览器中运行的Applet

此时还会显示一个名为Java控制台的窗口,在这个窗口按下键c,可以清除日志信息,按下x,然后刷新页面,可以重新载入Java类文件(这在调试Applet的时候很有用,因为浏览器默认是缓存当前显示的Applet的,不会每次都加载最新的类文件),其它的功能,大家按照说明按下键盘上的提示就可以了。如果没有看到这个界面,多半您没有安装JRE。 接着,我们看下Applet标签的相对完整的说明: 必需的属性 属性

描述

height pixels 定义 applet 的高度 width pixels 定义 applet 的宽度 code URL 执行 applet 的 class 的 URL可选的属性 属性 align

? ? ? ? ? ? ? ? ?

值 描述

定义围绕 applet 的文本排列方式。 left

right top bottom middle baseline texttop absmiddle absbottom

假如浏览器支持 applet,但无法运行此 applet 时,被显示的替换文本。

刘长炯著

alt text

9

archive URL

当 applet 被存储在某个 JAVA 档案文件或 ZIP 文件中时,此 applet 的 URL。

允许Applet和浏览器的JavaScript交互。

指示 applet 的基准 URL,假如 code 属性是相对的。 定义围绕 applet 的水平间隔。

定义针对 applet 的唯一名称(用在脚本中的)。 定义了包含该 applet 的一系列版本的资源名称。 在工具提示中显示的附加信息。 定义围绕 applet 的垂直间隔。

mayscript 无 codebase URL hspace name object title vspace

pixels unique_name name text pixels

。OK, archive是个很有用的功能,它可以将开发的类库打包成一个或者多个jar或者zip

文件(如何创建JAR我们此前已经讨论过),并以逗号隔开(注意是英文半角的),例如:

archive=\, applet/images.jar , applet/sounds.jar\ width=460 height=160>

。当然,一般项目只放一个jar就可以了,多个的时候,务必保持所有的jar都在一个目录下,否则会出现安全问题导致无法加载。其它有用的功能还包括上面小例子出现的param标签。 接下来要说的标签,就是codebase,它是什么意思呢?假设类文件和HTML文件不在一个目录下,它就指明了Java类文件相对于HTML文件所在的位置,例如,我们在项目根目录下新建一个网页文件MyAppletRoot.html,文件内容如下:

MyApplet Test

,然后目录结构如此存放: MyAppletRoot.html

bin/applets/MyApplet.class bin/applets/usb.jpg

。现在打开此网页文件,很好,也能正确的显示我们的Applet。反过来,不加codebase,浏览器就不知道到何处寻找类文件了。 刚才讨论了半天,是讲的本机运行时候的存放位置,另外发布到服务器上的时候,一定要把applet的类单独复制到WebRoot下面,保持刚刚讨论过的目录结构(也可以用jar方式),才能让访问的用户看到Applet。

10

刘长炯著

MyEclipse 6 第十八章 图形界面开发--AWT,Swing,SWT.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c5ac5d0bvw21wxgu8jpsa_2.html(转载请注明文章来源)
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top