JavaBeans开发:从基础到实践
1. BDK概述
BDK(JavaBeans开发工具包)包含以下内容:
-
BeanBox
:一个JavaBeans容器,可用于操作示例Bean和创建自己的Bean。
-
多个示例Bean
:包括显示杂耍动画的Juggler Bean、显示3D分子的Molecule Bean以及用户界面组件OrangeButton等。
-
BeanBox的完整Java源代码
:方便开发者深入了解其实现原理。
-
Makefiles
:配置脚本,可用于重新创建BDK。
-
来自Sun的JavaBeans和BeanBox教程
:帮助开发者快速上手。
2. BDK安装
BDK的Windows安装程序可能与当前版本的Java 2存在兼容性问题。如果无法安装,可以尝试使用独立于平台的ZIP存档版本。BDK大小约为2.4MB,在56K拨号上网连接下下载可能需要长达15分钟,而在高速连接下不到两分钟。在等待文件传输完成时,务必阅读BDK下载页面上的安装说明和最新注意事项。为了使BDK正常运行,可能需要更改系统的CLASSPATH设置。
BDK有两种形式可供下载:
-
单一可执行文件
:运行该文件即可安装软件。
-
ZIP存档
:BDK中的所有文件都存储在存档的beans文件夹中。将该文件夹从存档复制或移动到计算机上的文件夹(例如Java 2的主安装文件夹)。
使用.EXE文件安装时,需要选择BDK将使用的Java虚拟机,建议选择在日常运行Java 2程序时使用的Java解释器。
3. JavaBeans与其他类的区别
JavaBeans与其他Java类的主要区别在于,Beans可以与开发环境进行交互,就像用户在运行它们一样在开发环境中运行。开发环境也可以直接与Beans交互,调用它们的方法并设置其变量的值。
4. Bean容器
JavaBeans和Swing都使用容器,即用于容纳其他组件的用户界面组件。JavaBeans开发在Bean容器中进行,BDK包含的BeanBox是一个基本的容器,可用于以下操作:
1. 保存Bean
2. 加载已保存的Bean
3. 将Bean拖放到窗口中进行布局
4. 移动和调整Bean的大小
5. 编辑Bean的属性
6. 配置Bean
7. 将生成事件的Bean与事件处理程序关联
8. 将不同Bean的属性相互关联
9. 将Bean转换为小程序
10. 从Java存档(jar文件)中添加新的Bean
要运行BeanBox应用程序,需前往BDK安装文件夹并打开beanbox子文件夹。该子文件夹包含两个可用于运行BeanBox的批处理命令文件:Windows系统使用run.bat,Linux和Solaris系统使用run.sh。这些批处理文件使用在BDK安装过程中选择的Java解释器(可能是Java 2解释器)来加载BeanBox应用程序,运行后将打开四个窗口:
| 窗口名称 | 位置 | 功能 |
| ---- | ---- | ---- |
| BeanBox组合窗口 | 最大窗口 | 排列Bean并创建它们之间的关联 |
| 工具箱窗口 | 顶部左侧 | 列出可选择放置在组合窗口中的几个Bean |
| 属性窗口 | 顶部右侧 | 用于配置Bean |
| 方法跟踪器窗口 | 右下角 | 提供有关组件在BeanBox中如何交互的更多信息 |
大多数工作将在组合窗口中完成,该窗口类似于绘图程序(如Adobe Illustrator)的主窗口,所有Bean都在该窗口中进行放置、重新排列、对齐和选择编辑。
5. 放置Bean
在BeanBox中放置Bean的步骤如下:
1. 在工具箱窗口中选择要放置的Bean,此时光标将变为十字线符号。
2. 使用十字线在主组合窗口中的任何位置单击,即可将所选类型的Bean放置在其中。建议将Bean放置在组合窗口的中间附近。
3. 如果需要移动Bean,可以使用“编辑”菜单中的“剪切”和“粘贴”命令,也可以将光标放在Bean的边缘,直到光标变为一组方向箭头,然后拖动Bean到新位置并释放鼠标。
例如,在工具箱窗口中单击Juggler标签,然后在主组合窗口的中间位置单击,主窗口中将出现一个杂耍动画,动画中的杂耍者是Java语言的官方吉祥物Duke,他抛接的对象是巨型Bean。
6. 调整Bean的属性
当在BeanBox的主组合窗口中选择一个Bean时,其可编辑属性(如果有)将显示在属性窗口中。以Juggler Bean为例,它有三个可编辑属性:debug、animationRate和name。
更改JavaBean的属性会直接反映在Bean中。例如,为Juggler Bean的animationRate属性赋予更高的整数值,动画的每一帧之间的停顿将变长;如果减小该属性值,动画将加速。更改animationRate属性后,按Tab键或单击其他属性的值跳过该属性,Bean将相应地发生变化。可以尝试输入极端值(如1和1000)来观察Juggler Bean的响应。
Bean的可编辑属性可以通过Bean内部的公共方法来建立。每个可以设置的属性都有一个set()方法,其全名与BeanBox属性窗口中的属性名称匹配;每个可以读取值的属性都有一个相应的get()方法。像BeanBox这样的JavaBeans开发环境使用反射来查找这些方法,从而使开发者可以在设计时或程序运行时处理这些属性。
例如,Juggler Bean的animationRate属性可能有以下两个方法:
public int getAnimationRate(){
return animRate;
}
public void setAnimationRate(int newRate) {
animRate = newRate;
}
在这两个方法中,animRate是一个私有变量,用于确定杂耍动画帧之间的停顿。通过为这些方法名称使用set和get前缀,Juggler Bean的开发者表明animationRate属性可以在像BeanBox这样的JavaBeans开发环境中进行更改。
BeanBox和所有遵循Sun标准的Bean开发工具一样,调用Bean的公共get()方法来确定要在属性窗口中包含哪些属性。当其中一个属性发生更改时,将调用相应的set()方法,并将更改后的值作为参数传递。Bean的开发者可以通过提供一个BeanInfo类来覆盖这种行为,该类指示从Bean开发环境中应该可以访问的方法、属性、事件和其他内容。
在所有面向对象编程中,将变量设为私有并使用get()和set()方法来读取和更改它是一个很好的原则,这种做法称为封装,用于控制对象如何被其他对象访问。对象封装得越好,其他对象就越难错误地使用它。
7. 创建Bean之间的交互
BeanBox的另一个用途是建立不同Bean之间的交互。以下是一个示例,展示如何创建交互:
1. 在BeanBox的主组合窗口中任意位置放置两个ExplicitButton Bean。如果它们与Juggler Bean或彼此重叠,将它们移开。
2. 给其中一个按钮添加标签“Stop!”,并将其背景颜色更改为红色;给另一个按钮添加标签“Go!”,并将其背景颜色更改为绿色。
3. 选择其中一个ExplicitButton Bean,选择“编辑”菜单中的“事件” -> “按钮按下” -> “actionPerformed”,此时会出现一条红色线条连接按钮和光标。
4. 将红色线条拖动到Juggler Bean上,然后单击以建立两个Bean之间的关联。建立关联后,将出现一个EventTargetDialog窗口,列出目标Bean中的不同方法。
5. Juggler Bean包含两个用于停止或启动杂耍动画的方法:stopJuggling()和startJuggling()。将“Stop!”按钮与Juggler Bean的stopJuggling()方法关联,将“Go!”按钮与startJuggling()方法关联。
通过建立这三个Bean之间的交互,就创建了一个简单的、可显示、启动和停止动画的Java程序。
8. 创建JavaBeans程序
在共享界面上放置一个或多个Bean、设置它们的属性并建立它们之间的交互后,就创建了一个Java程序。
在BeanBox中保存项目可以使用“文件”菜单中的“保存”命令,该命令可以将以下信息保存到文件中:
- 当前配置的Bean
- Bean的排列方式
- Bean所占用窗口的大小
- Bean之间的交互
但这并不会将项目保存为可以在BeanBox外部运行的Java程序。要保存为可运行的形式,可以使用“文件”菜单中的“MakeApplet”命令。该命令需要提供两个信息:小程序主类文件的名称和包含运行小程序所需的所有文件(包括类文件和其他数据)的jar存档的名称。
指定这些信息后,将创建一个带有示例HTML页面的小程序,该HTML文件将放置在包含小程序jar存档的同一文件夹中。可以使用appletviewer或任何配备Java 2插件的Web浏览器加载该页面。
以下是BeanBox为名为JugglingFool的小程序生成的applet标签:
<html>
<head>
<title>Test page for JugglingFool as an APPLET</Title>
</head>
<body>
<h1>Test for JugglingFool as an APPLET</h1>
This is an example of the use of the generated
JugglingFool applet. Notice the Applet tag requires several
archives, one per JAR used in building the Applet
<p>
<applet
archive="./JugglingFool.jar,./support.jar
,./buttons.jar
,./juggler.jar
"
code="JugglingFool"
width=382
height=513
>
Trouble instantiating applet JugglingFool!!
</applet>
</body>
</html>
9. 使用其他Bean
使用预打包组件进行软件开发是一种快速应用开发(Rapid Application Development,简称RAD)的形式。RAD常用于快速创建软件的工作版本,用于演示或原型设计。例如,使用Microsoft Visual Basic创建Visual C++程序的原型,Visual Basic的图形用户界面设计速度快,使其成为比更复杂的Visual C++更有效的原型设计解决方案。
JavaBeans使RAD开发在Java软件开发中更为常见。开发者可以使用现有的JavaBeans组件迅速拼凑出一个可运行的程序。
可以从Sun和其他开发者那里获取数百个Bean,以下是一些获取Bean的网站:
- JARS(Java Applet Ratings Service):包含JavaBeans资源部分,网址为http://www.jars.com/jars_resources_javabeans.html
- JavaWorld Magazine的开发者工具指南:http://www.javaworld.com/javaworld/tools/jw-tools-index.html
- Sun的JavaBeans主页:http://java.sun.com/beans
Beans以jar存档的形式打包。如果下载了一个Bean并希望它出现在BeanBox的工具箱窗口中,将该Bean的jar存档保存到BDK安装文件夹的jars子文件夹中。
10. 总结
与支持它们的集成开发环境结合使用时,Beans可以实现Java程序的快速应用开发。虽然在使用JavaBeans开发自己的程序之前,建议寻找一个真正的开发工具,但可以使用BDK来评估Beans对自己编程任务的适用性。同时,也应该利用互联网上的JavaBeans资源,许多网上可用的Beans已经可以完成在自己程序中需要处理的任务,使用这些Beans可以减少从头创建的工作量。
11. Q&A
-
问题1:JavaBeans开发工具包会升级为功能齐全的Bean编程工具吗?
- 答案 :Sun在其网站上表示,BeanBox的开发于1999年结束,现在仅用于“教育和演示目的”。Sun继续表示,BDK旨在测试Beans并提供Beans在开发环境中应如何使用的参考版本。专业编程工具(如Visual Café、Sun ONE Studio等)似乎仍将是JavaBeans开发的最佳选择。
-
问题2:在JugglingFool示例中,animationRate属性在setAnimationRate()和getAnimationRate()方法中的大小写不同,原因是什么?
- 答案 :大小写不同是由于Java程序的命名约定:所有变量和方法名以小写字母开头,变量名中除第一个单词外的所有单词以单个大写字母开头。
12. 测验
以下是一些复习题及答案:
1. 如果开发一个具有返回整数的getWindowHeight()方法和setWindowHeight(int)方法的Bean,在Bean开发环境中会显示什么属性?
- a. WindowHeight
- b. windowHeight
- c. 除非在BeanInfo文件中也进行了设置,否则不会显示任何属性
-
答案
:b。不过也可以使用BeanInfo文件来排除windowHeight作为属性显示在Bean开发环境中。
2. 什么时候可以修改Bean的属性?
- a. 设计时
- b. 运行时
- c. 两者均可
-
答案
:c。如Juggler示例所示,Beans在设计时甚至也可以运行。
3. 如何更改使用BDK创建的小程序的大小?
- a. 在创建小程序后编辑BDK生成的HTML。
- b. 编辑BeanBox的属性。
- c. 在创建小程序之前调整BeanBox的大小。
-
答案
:c。不过答案a也是正确的,因为可以直接编辑HTML并修改APPLET标签的HEIGHT和WEIGHT属性。
13. 认证练习
以下是一个可能在Java编程认证测试中遇到的问题,请在不查看前面内容或使用Java编译器测试代码的情况下回答。
public class NameDirectory {
String[] names;
int nameCount;
public NameDirectory() {
names = new String[20];
nameCount = 0;
}
public void addName(String newName) {
if (nameCount < 20)
// 请在此处填写代码
}
}
在
if
语句块中,应添加以下代码来实现添加新名称的功能:
names[nameCount] = newName;
nameCount++;
综上所述,JavaBeans开发为Java程序员提供了一种高效、便捷的方式来创建和管理Java程序。通过使用BDK和现有的Beans资源,可以快速搭建出功能丰富的应用程序。同时,了解JavaBeans的基本原理和操作方法,对于通过Java编程认证测试也具有重要意义。
JavaBeans开发:从基础到实践
14. 开发流程总结
为了更清晰地展示JavaBeans的开发流程,下面用mermaid流程图来呈现:
graph LR
A[安装BDK] --> B[运行BeanBox]
B --> C[放置Bean]
C --> D[调整Bean属性]
D --> E[创建Bean交互]
E --> F[创建JavaBeans程序]
F --> G[保存项目]
G --> H[生成可运行小程序]
整个开发流程可以概括为以下步骤:
1.
安装BDK
:根据系统情况选择合适的安装方式,注意可能存在的兼容性问题和CLASSPATH设置。
2.
运行BeanBox
:进入BDK安装文件夹的beanbox子文件夹,根据系统类型运行相应的批处理文件。
3.
放置Bean
:在工具箱窗口选择Bean,在主组合窗口放置。
4.
调整Bean属性
:在属性窗口修改Bean的可编辑属性。
5.
创建Bean交互
:通过事件关联不同的Bean。
6.
创建JavaBeans程序
:完成Bean的放置、属性设置和交互建立。
7.
保存项目
:使用“文件” - “保存”命令保存项目信息。
8.
生成可运行小程序
:使用“文件” - “MakeApplet”命令生成可运行的小程序。
15. 常见问题及解决方法
在使用BDK和开发JavaBeans过程中,可能会遇到一些问题,以下是常见问题及解决方法的列表:
| 问题描述 | 解决方法 |
| ---- | ---- |
| BDK的Windows安装程序与当前Java 2版本不兼容 | 尝试使用ZIP存档版本的BDK |
| 在工具箱窗口找不到ExplicitButton Bean | 前往http://www.java21pro.com/ 下载buttons.jar和test.jar文件,保存到BDK安装文件夹的jars子文件夹中,关闭并重新运行BeanBox |
16. 封装的重要性
在JavaBeans开发中,封装是一个重要的原则。通过将变量设为私有,并使用get()和set()方法来访问和修改变量,能够更好地控制对象的访问,提高代码的安全性和可维护性。以下是封装的优点总结:
1.
数据隐藏
:外部对象无法直接访问私有变量,只能通过公共的get()和set()方法进行操作,避免了数据被非法修改。
2.
提高可维护性
:当需要修改变量的实现时,只需要修改get()和set()方法,而不会影响到使用该变量的其他代码。
3.
增强安全性
:可以在set()方法中添加验证逻辑,确保变量的值在合法范围内。
17. 快速应用开发(RAD)的优势
JavaBeans使得RAD开发在Java软件中更加普遍,其优势主要体现在以下几个方面:
1.
节省时间
:利用现有的JavaBeans组件,开发者可以快速搭建出一个可运行的程序,减少了从头开始编写代码的时间。
2.
降低成本
:对于一些简单的项目或原型开发,使用RAD可以避免投入过多的人力和时间成本。
3.
便于演示和验证
:可以快速创建一个工作版本的软件,用于演示和验证项目的可行性,及时获取反馈并进行调整。
18. 代码示例分析
下面对前面提到的Juggler Bean的animationRate属性的代码进行分析:
public int getAnimationRate(){
return animRate;
}
public void setAnimationRate(int newRate) {
animRate = newRate;
}
- getAnimationRate()方法 :用于获取animationRate属性的值,返回一个整数。
- setAnimationRate(int newRate)方法 :用于设置animationRate属性的值,接收一个整数参数。
通过这两个方法,JavaBeans开发环境可以方便地读取和修改animationRate属性的值,实现对Juggler Bean动画速度的控制。
19. 总结与展望
JavaBeans开发为Java程序员提供了一种高效、便捷的开发方式。通过使用BDK和现有的Beans资源,可以快速创建出功能丰富的Java程序。同时,了解JavaBeans的基本原理和操作方法,对于提高编程效率和代码质量具有重要意义。
在未来的Java开发中,JavaBeans可能会继续发挥重要作用。随着技术的不断发展,可能会出现更多功能强大的Beans组件和开发工具,进一步推动Java软件开发的快速发展。开发者可以持续关注相关资源,不断学习和掌握新的技术,以适应不断变化的开发需求。
总之,掌握JavaBeans开发技术,将为开发者在Java领域的发展带来更多的机会和优势。无论是进行小型项目的快速开发,还是参与大型项目的开发,JavaBeans都将是一个有力的工具。
超级会员免费看
58

被折叠的 条评论
为什么被折叠?



