3.4.netobjects beanbuilder
.netobjects beanbuilder是创建多媒体java applet的可视化写作工具。它的前身是lotus beanmachine.netobjects beanbuilder使得开发者能用多媒体、特效、灵巧的表单和动态数据来丰富网站,而不要写一行java代码,或者只需写一些简单的java代码。beanbuilder是通过把javabean结合进applet的可视化编辑工具来实现这一强大的功能。开发者只要从beanbuilder的样式库(palette)里选择丰富的可重用的javabean,设置几个属性,就完成了多媒体java applet的开发。如果在样式库里没有需要的那个javabean,可以用beanbuilder的部件引入向导(import part wizzard)引入javabean或java 类。甚至也可以引入已有的applet。
1.applet 概述
applet是panel的一个子类,可以包含gui组件。与一般的应用程序不同的是,applet只能在浏览器里运行。applet使用称之为沙箱(“sandbox”)的安全模型。在这个模型中,网上下载的applet缺省地是不可信代码(不可信applet),不可信applet有下列约束:
(1) 不能读或写本地文件系统;
(2) 不能进行网络操作,除非是对于applet的源主机;
(3) 不能装载某些类,如securitymanage子类和urlcontentfactory等;
(4) 不能访问它所运行的线程组以外的线程或线程组;
(5) 不能使用广播字节套(multicast sockets);
(6) 不能访问java.security包
这个安全模型使得用户放心地使用applet。然而,这些安全限制使编程的任务变得更困难。在jdk1.1里,applets可以被签署(sign)。如果运行时环境的安全政策认为“签署者”是可信任的话,这些被签署的applets可以被认为是“可信任的”代码。在jdk1.2里,所有的java代码都是能被限制的或签署的。
applets通常被嵌入html文档中,applet标记是在一个web页面里使用applet的标准机制。举例如下:
<applet
code= register.class
width=500
height=500
codebase= classes
archive= register.jar>
<param name= fullname value= "henry burns">
<param name= age value= "12">
</applet>
code,width,height属性是必需的选项,其它的属性和包含的标记是可选的,如archive属性和codebase属性和parm标记。有关属性和标记,及其它们的含义如下:
(1) codebase= java代码所在的url(不是document base)。codebase允许规定.class文件所在的路径,使用页面服务器上的路径或url。
(2) code= applet类文件的名字。code属性可以指定为在页面服务器上的路径或url,值对大小写敏感,而且必需包括.class扩展名。
(3) width= applet显示区域的宽度。
(4) height= applet显示区域的高度。width和height用像素点规定浏览器定位的空间。
(5) alt=如果浏览器不能理解标记的话,要使用的文字
(6) archive=允许使用jar文件,作为发现applet文件的地方
(7) name= applet的名字。多个applets之间的通信要用到这个。
(8) align= 告诉浏览器怎样在显示区域里排列applet
(9) vspace= applet和别的组件在垂直方向上的间隔
(10) hspace= applet和别的组件在水平方向上的间隔
(11) parm标记,要求一个name和一个value成对出现。使用param标记来指定一个applet
的参数。parm标记必须在<applet>和</applet>之间出现。name部分是大小写不敏感的,而value部分是大小写敏感的。所有传给applet的参数都被当作字符串。
在上述嵌入html文档的applet例子中,applet类由register.class定义,该文件存放在web服务器中html文档目录的classes子目录中,而且register.class 文件很可能被包含在register.jar 文件中。jar文件是包括一个附加的”manifest”文件的压缩zip文件,通常用来把一个applet需要的二进制文件、源文件和资源文件等有关文件结合进一个文件。浏览器取得jar文件之后,需要解压缩得到所需的.class文件及可能的相关资源文件。jar文件也可以用于java应用程序或servlet,但一般用于applet。如果一个jar文件用于一个应用程序或servlet,在运行它们以前会有一个额外的解压缩的过程。对applets而言,这个额外的解压缩处理是值得的,因为节约了网络传输时间。最后,jar文件也可以被用作一个分发java软件包的机制。
在applet代码中,程序员可以使用getdocumentbase()方法来获得包含applet标记的html页面的url。使用getcodebase()来找出codebase属性选项的设置。如果codebase属性选项是空白的,getcodebase()方法返回与getdocumentbase()一样的值。使用getparameter(string)方法取得参数的值,通常需要对传进applet的valu还要进行差错处理。
2.标准样式库
样式库中包含了许多用于组成applet的 bean。beanbuilder 提供了缺省的样式库,为了把样式库中的某个 bean 放置在applet中,可以在样式库中单击这个 bean 的图标。此操作可将 bean 装载到光标上,并将光标变成十字指针形状,然后在设计器上再次单击鼠标放置 bean。样式库上的beans包括附件beans、控件beans、多媒体beans、和网络beans四种类型。
a.附件分类
(1) 布尔求值:用于对布尔值进行 and 和 or 运算;
(2) 数学公式:用于执行基本的数学运算;
(3) 数字求值:用于比较两个数字的大小;
(4) 文本源:用于访问文本文件的内容,对于一个远程文件可以使用一个url表示,或对于一个在
可信任的applet里的本地文件使用一个文件名表示。
b.控件分类
(1) 按钮:按钮 bean。
(2) 复选框:复选框 bean。
(3) 选择框:下拉列表bean。
(4) 标签:显示单行文本的bean。
(5) 列表框:列表框 bean。
(6) 面板:可以包容其他 bean 并且具有布局样式的 bean。
(7) 文本区:可以输入多行文本的bean。
(8) 文本域:只能输入单行文本的bean。
这些是标准的awt控件,但是,这些控件提供的有关事件更丰富。
c.多媒体分类
(1) 动画:用于显示一组连续的图片。
(2) 声音:用于播放声音剪辑。
(3) 时钟:用于显示日期和时间。
(4) 图像:用于显示图片文件。
(5) 动作:用于沿着路径移动其它bean。
(6) 跳跃文本:用于显示在屏幕上跳动的文本。
(7) 感应按钮:当鼠标经过时可以改变图像。
(8) 阴影文本:显示带有阴影的文本。
(9) 打字机:用于显示文本字符并伴随播放声音。
(10) 文本:用于显示文本。
(11) 行走文本:用于在屏幕上显示移动的文本。
(12) 计时器:用于计算时间。
d.网络分类
(1) 数据库:用于显示数据库中的数据。
(2) 电子邮件:用于组织和发送电子邮件而不用浏览器邮件对话框。
(3) 新闻摘要:用于显示包含 url 链接的滚动文本列表。
(4) html参数:用于读取 html 参数。
(5) 邮件链接:用于显示浏览器的邮件对话框。
(6) url 链接:用于连接到其他 web 页面。生成的url以./开头的,即使用相对于html页面的
相对路径,正斜杠和反斜杠都是一样的。
(7) 大字标题;用于显示带url链接的滚动文字列表
beanbuilder提供的控件同visualage for java提供的不一样。例如,beanbuilder有出色的多媒体和动画控件。
3.添加与定制样式库
在样式库中添加 javabean。只要单击添加按钮,就将出现对话框(参见图3-6)以进行选择。典型情况下可以从 .jar 文件添加现有的 bean。为此目的,单击“从 jar 文件中添加 bean”单选按钮,在文本框中输入 jar 文件的路径或单击查找...按钮以查找所需的 .jar 文件。使用分类域中的下拉列表以指定添加 bean 的样式库分类。单击确定增加 bean。如果指定的 jar 文件有多个 bean,所有的将添加到指定的分类中。如果想要在添加 bean 时添加新的分类,只要在分类域中输入新名称。然后单击确定添加 bean 和新的分类。注意:也可通过将 .jar 文件放置到 beanbuilder 的“beans”文件夹将 bean 添加到样式库中。“beans”文件夹包含所有 bean 的 beanbuilder 样式库。下一次 beanbuilder 启动时,它将会探测到新添了 bean,并自动将它添加到样式库中。beanbuilder 选择 jar 文件的名称作为 bean 分类的名称。通常也可以用va java来创建beans,然后添加到beanbuilder 样式库。
除了向 beanbuilder 样式库添加以外,还可以定制样式库。要定制样式库,单击样式库上的定制按钮。这将显示对话框以提供选项。可以重新排列 bean、隐藏 bean 或删除它们。
(1) 要重新排列样式库中的 bean,可在列表中选择想要移动的 bean,并使用箭头按钮在列表中移动它到想要的位置。甚至可以移动它到另一个分类。
图3-6:添加到样式库
(2) 也可以隐藏特定的 bean 或整个分类的 bean。要隐藏 bean 或分类,可单击它旁边的复选框。如果框包含复选标记,此特定 bean 或分类将显示在样式库中。如果框不包含复选标记,bean 或分类将在视图中隐藏。
(3) 要完全删除 bean,突出显示该 bean 并单击删除按钮。如果可能以后需要该 bean,可使用隐藏替代删除,这样能够快速恢复此 bean 而不用重新增加它到样式库中。
注意:虽然可以删除创建的分类,但不能删除 beanbuilder 所带的分类。要注意到删除按钮在这些分类突出显示时,是不能使用的。如果删除分类,所有的 bean 将会消失。
4.构建applet
单击 windows 的“开始”按钮,从“程序”菜单中启动 beanbuilder 进入“新建applet向导”。可以通过这个向导快速创建第一个applet。阅读并熟悉向导,在准备就绪之后单击“下一步”,在“动画”附签中选择“是”。单击“查找”定位动画的第一帧,将beanbuilder安装目录的doc 文件夹中的 dot001.jpg 作为动画的第一帧。beanbuilder 使用相同的基础文件名(dot002.jpg、dot003.jpg 等)在第一帧图像所在的文件夹中搜索其他序号的文件,从而自动定义动画的其余帧。在本样例中,beanbuilder 查找到 7 个文件来完成动画。beanbuilder 自动识别动画中剩余帧。选择“中速”定义动画的播放速度。可以单击“预览”按钮预览动画的播放效果。这样就简单的完成了动画的创建。单击“完成”继续下面的操作。此时的设计器窗口如图3-7所示:
图3-7:设计器窗口
下面让我们通过创建“连接”来使它动起来。连接可以看作是两个部件之间的命令或交互作用。连接的作用方式为“当事件发生时,执行操作”。操作可以是诸如播放声音剪辑或者设置属性(背景颜色)之类的任意动作。在本样例中,操作就是播放动画。记住,所有的操作都要由事件触发。通过直接定义触发操作的事件来创建连接。在本样例中,我们需要在单击按钮之后开始播放动画。因此在创建连接之前,首先添加一个按钮。
beanbuilder 中提供了多种按钮,可以使用标准按钮或是更为生动的感应按钮。感应按钮中附加了一些内置特性,当将鼠标移动到感应按钮上,或者在其上按下鼠标时,可以自动显示不同的图像。首先确保样式库中显示多媒体分类;如果没有,从下拉框中选择它。当多媒体分类出现后,单击感应按钮 bean。此时的光标将转换成十字指针,并且装载感应按钮 。下一步,将光标移动到applet画布上,单击鼠标并放置 bean。需要设置某些属性,以便定制感应按钮。可以在详细信息窗口的属性附签中将感应按钮链接到创建的图片文件上。根据按钮状态的不同,显示的图片也有所不同:
(1) 正常图片:鼠标指针没有移动到按钮上时的图片。
(2) 移入时图片:鼠标指针移动到按钮上时的图片。
(3) 按下时的图片:鼠标单击按钮时的图片。
(4) 禁止时图片:用户不能操作按钮时的图片。
在详细信息窗口的属性附签中为不同的感应按钮状态指定不同的图片。选择图片属性,然后单击右边的按钮。屏幕上将显示“打开”对话框,可以指定 3lsbutton3.jpg 作为图片属性,3lsbutton3p.jpg和 3lsbutton3r.jpg分别作为按下时图片和移入时图片属性。将按钮的名称属性修改为3lostsoulsbutton。如果没有定义感应按钮的移入时图片、单击时图片或者禁止时图片,那么 beanbuilder 将使用已经指定的艺术图片。
在创建连接之前,选择动画 bean 并且将它的自动启动属性设置为否。如果将这个属性设置为是,自动启动属性将告诉applet在启动时自动播放动画。但是,在本样例中,我们希望单击感应按钮之后再播放动画。现在,我们开始创建连接。首先,必须确定选中按钮。通过下面的三种方法可以知道当前选中的 bean:选中 bean 的四周会显示选取控制端点,它的名称会显示在详细信息窗口的标题条中,它的名称会显示在主工具条的选定 bean 的下拉列表中。如果选中了感应按钮,那么详细信息窗口(参见图3-8)的标题条将显示详细信息?3lostsoulsbutton。单击连接附签,由于还没有定义任何连接,此时连接列表的内容为空。在事件下面选择第一个元素,屏幕上将显示一个下拉列表,可以在这里查看感应按钮的事件。因为我们希望单击按钮后播放动画,因此从列表中选择“单击”。接着选择 bean 下面的元素,在这里查看当前applet中可以与感应按钮进行连接的 bean。在列表中选择动画1,最后的单元是操作列表,可以在这里查看单击感应按钮时动画 bean 执行的操作。为使动画在单击按钮时开始,选择启动操作。
图3-8:详细信息窗口
现在,请保存这个applet。保存之后,可以单击主工具条上的运行按钮进行测试。短暂的停顿之后,屏幕上将出现applet查看器(applet viewer)窗口并显示刚创建的运行applet。单击按钮测试动画的播放效果。测试完成之后,关闭applet查看器窗口。
通过类似的方法,可以添加声音并创建一些有趣的连接。单击主工具条上的试演按钮可以进行试演。单击主工具条上的发布按钮可以将刚才创建的 3 lost souls applet中包含的图像文件、动画文件以及 beanbuilder 创建的 java (.class) 文件放到服务器上。单击主工具条上的发布按钮启动发布向导,在向导的指导下将applet放置在本地文件系统或远程的任何地方。在这里,我们将applet发布到本地文件系统。定位域中已经添入文件夹名 publish。这是运行applet所需的所有文件的位置。当然,可以修改此文件夹为所需文件夹。在发布向导上单击完成按钮之后,beanbuilder 整理applet中包含的所有文件并把它们复制到指定的文件夹中。如果已经设置好 web 服务器,那么只需把这些文件从发布文件夹复制到服务器的文件夹中即可。记住,必须把applet中的所有文件和 java (.class) 文件放置在服务器的同一个文件夹中,以便applet能够正确运行。这样就完成java动画的开发和发布。
总之, beanbuilder 是一个applet开发环境。它提供了非常灵活的手段,帮助用户发挥 java 的强大功能,并自带丰富的javabeans。它使得放置可视化控件、创建动画applet、写简单的java代码变得容易。对需要客户端动态的页面,applet是理想的,而beanbuilder是开发applet的及其优越的可视化制作工具。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器