JavaBeans技术:构建高效Java应用的利器
立即解锁
发布时间: 2025-08-18 00:08:28 阅读量: 3 订阅数: 9 

### JavaBeans技术:构建高效Java应用的利器
#### 1. JavaBeans简介
JavaBeans是基于Sun的JavaBeans规范的可重用软件组件,能在构建工具中进行可视化操作。实现一个JavaBean后,可在如Forte、JBuilder、VisualAge或Visual Café等构建环境中高效开发应用程序或小程序。虽然我们不会详细介绍这些环境的使用方法,但会阐述实现JavaBeans所需了解的知识,以便其他程序员能轻松使用你创建的Bean。
#### 2. 为何需要JavaBeans
对于有Windows编程背景(特别是Visual Basic或Delphi)的程序员来说,JavaBeans的重要性不言而喻。而习惯“自己动手”开发一切的程序员可能一时难以理解。以Visual Basic为例,其受欢迎的原因可从构建应用程序的方式看出:
- **构建界面**:将组件(在Visual Basic中称为控件)拖放到窗体窗口上。
- **设置属性**:通过属性表设置组件的属性,如高度、颜色或其他行为。
- **编写事件处理代码**:属性表会列出组件可响应的事件,针对部分事件编写简短的事件处理代码。
例如,在Java中显示图像可能需要一页多的代码,而在Visual Basic中,只需添加图像控件和通用对话框控件,设置过滤属性,再编写几行代码即可实现相同功能:
```vb
Private Sub Form_Load()
On Error Resume Next
CommonDialog1.ShowOpen
Image1.Picture = LoadPicture(CommonDialog1.FileName)
End Sub
```
显然,学习拖放组件和设置属性比编写大量代码容易得多。目前,Java主要由顶尖的面向对象程序员使用,在设计客户端应用程序的用户界面方面,即使是这些程序员也难以达到优秀Visual Basic程序员的效率。JavaBeans技术使开发人员能够创建更易于开发Java应用程序用户界面的环境。需要注意的是,Visual Basic并非适用于所有问题,它主要针对UI密集型Windows程序进行了优化,而Java技术的应用范围更广。随着JavaBeans技术的出现,程序员可以享受到类似Visual Basic的应用程序构建优势:
- 具有与常见Visual Basic控件相同功能的JavaBeans很容易获取。
- Java技术构建工具的易用性已接近Visual Basic环境。
#### 3. JavaBean编写过程
编写JavaBean在技术上并不困难,只需掌握几个新的类和接口。最简单的JavaBean实际上就是一个遵循严格命名约定的Java平台类,其事件监听器和方法都有特定的命名规则。以下是一个Image Viewer Bean的示例代码:
```java
import java.awt.*;
import java.io.*;
import javax.imageio.*;
import javax.swing.*;
/**
* A bean for viewing an image.
*/
public class ImageViewerBean extends JLabel {
public ImageViewerBean() {
setBorder(BorderFactory.createEtchedBorder());
}
/**
* Sets the fileName property.
* @param fileName the image file name
*/
public void setFileName(String fileName) {
try {
file = new File(fileName);
setIcon(new ImageIcon(ImageIO.read(file)));
} catch (IOException exception) {
file = null;
setIcon(null);
}
}
/**
* Gets the fileName property.
* @return the image file name
*/
public String getFileName() {
if (file == null) return null;
else return file.getPath();
}
public Dimension getPreferredSize() {
return new Dimension(XPREFSIZE, YPREFSIZE);
}
private File file = null;
private static final int XPREFSIZE = 200;
private static final int YPREFSIZE = 200;
}
```
在这段代码中,`ImageViewerBean`类看起来与其他类并无不同。所有访问器方法以`get`开头,所有修改器方法以`set`开头,构建工具会利用这种标准命名约定来发现属性。需要注意的是,属性与实例变量不同,属性是接口的特征,而实例变量属于类的实现。
在实际开发中,真正的JavaBean比示例代码要复杂得多,原因如下:
- **面向不同水平的程序员**:JavaBean需要被不太专业的程序员使用,他们大多通过可视化设计工具来使用Bean的功能,因此需要暴露大量属性以方便定制Bean的行为。
- **适应多种环境**:同一个JavaBean需要在多种上下文中使用,过于简单的Bean在实际应用中可能无法发挥作用。例如,一个流行的图表控件可能有60个属性、14个方法、47个事件和178页的文档。
为了使JavaBean在构建环境中得到全面支持,建议Bean具有默认构造函数(或根本没有构造函数,此时会自动提供默认构造函数),并且可序列化。这样,环境可以实例化新的Bean并在会话之间保存Bean。不过,这些只是实际建议,并非强制要求。例如,`ImageViewerBean`由于继承了可序列化的`JLabel`类,因此是可序列化的。
#### 4. 使用JavaBeans构建应用程序
在深入了解编写JavaBeans的机制之前,先看看如何使用和测试它们。以`ImageViewerBean`为例,在普通的Java程序中使用它需要编写代码来创建Bean对象、将其放入容器并调用`setFileName`方法,这对于忙碌的程序员来说可能有些繁琐。而构建环境的目标就是减少将组件组合成应用程序的繁琐工作。
我们将以Forte Community Edition为例,介绍如何使用JavaBeans构建应用程序。如果你更喜欢其他构建环境,基本原理也是相同的,只是细节有所不同。另外,如果你不想下载大型环境,也可以使用Sun Microsystems的BeanBox,但它自SDK 1.1之后就没有更新,且不提供组件布局的便利功能。
在这个示例中,我们将使用`ImageViewerBean`和`FileNameBean`。在使用这些Bean之前,需要将它们打包成JAR文件以便导入到构建工具中。
##### 4.1 打包JavaBeans到JAR文件
要使JavaBean在构建工具中可用,需将Bean代码使用的所有类文件打包到JAR文件中。与小程序的JAR文件不同,Bean的JAR文件需要一个清单文件来指定归档中的哪些类文件是Bean,并应包含在工具箱中。以下是`ImageViewerBean`的清单文件`ImageViewerBean.mf`示例:
```plaintext
Manifest-Version: 1.0
Name: ImageViewerBean.class
Java-Bean: True
```
如果类在包中,使用斜杠表示包名,例如:
```plaintext
Name: com/horstmann/beans/ImageViewerBean.class
```
如果Bean包含多个类文件,只需在清单中提及那些是Bean且希望在工具箱中显示的类文件。例如,将`ImageViewerBean`和`FileNameBean`放入同一个JAR文件中,清单文件可以如下:
```plaintext
Manifest-Version: 1.0
Name: ImageViewerBean.class
Java-Bean: True
Name: FileNameBean.class
Java-Bean: True
```
制作JAR文件的步骤如下:
1. 编辑清单文件。
2. 将所有需要的类文件收集到一个目录中。
3. 运行`jar`工具:
```plaintext
jar cfm JarFile ManifestFile *.class
```
例如:
```plaintext
jar cfm ImageViewerBean.jar ImageViewerBean.mf *.class
```
你还可以将其他项目(如图标GIF文件)添加到JAR文件中。
##### 4.2 将JavaBeans导入到Forte中
将`ImageViewerBean`和`FileNameBean`类编译并打包成JAR文件后,启动Forte并按以下步骤操作:
1. 从菜单中选择“Tools -> Install new Java Bean”。
2. 在文件对话框中,导航到`ImageViewerBean`目录并选择`ImageViewerBean.jar`。
3. 弹出一个对话框,列出JAR文件中找到的所有Bean,选择`ImageViewerBean
0
0
复制全文
相关推荐










