
Java控件设计入门
发布时间:2006-09-19 18:18:23 来源:BEA中国 网友评论 0 条
第一个例子—Hello World!
下面我们通过一个简单的Hello World!的例子来介绍如何开发一个具备基本功能的控件。这个控件的唯一作用是提供名为“getHelloString”的业务接口,当开发者调用该接口时返回“Hello World!”字符串。
在开始开发工作之前,我们必须安装一些必需的软件。
现在我们开始创建HelloWorld!例子。在C:/创建目录”HelloWorld” (下面的例子中将使用%HELLOWORLD_HOME%引用这个目录)。
创建控件接口(HelloWorldControl.java),它的全部源代码见清单1。
清单1 srcorgvivianjeehiventrolsxamplesHelloWorldControl.java
HelloWorldControl接口声明了一个业务方法getHelloString,它接收传入的String类型参数,返回内容也是String类型。这段代码中唯一让人困惑的是第5行的。是控件(Controls)架构中提供的注释,在接口声明前面使用注释表明接下来定义的这个接口是一个Java控件的公共接口。
接下来我们要创建控件实现类(HelloWorlControlImpl.java),它的全部代码见清单2。
清单2 srcorgvivianjeehiventrolsxamplesHelloWorlControlImpl.java
HelloWorldControlImpl类继承了控件公共接口HelloWorldControl(参见清单1),提供了getHelloString方法的具体实现。在代码的第5行出现了@ ControlImplementation。@ ControlImplementation注释是控件(Controls)架构中提供的注释,在类声明前面使用ControlImplementation表明接下来定义的这个类是一个Java控件的接口实现类。
编译控件
下面的步骤是Windows平台下编译控件的主要步骤。
C:HelloWorld> set path=%JAVA_HOME%/bin;%ANT_HOME%/bin 使用JUnit测试控件
JUnit是最常用的Java单元测试框架,为了测试新创建的控件,我们建立一个JUnit TestCase来测试它。在开发TestCase之前,我们需要准备些软件。
本文所带例子HelloWorld.zip中的lib目录下也可以找到。
现在我们来创建控件的测试类(HelloWorldControlTest),它的全部代码见清单5。
清单5 testorgvivianjeehiventrolsxamplesNittestHelloWorldControlTest.java
下面我们通过一个简单的Hello World!的例子来介绍如何开发一个具备基本功能的控件。这个控件的唯一作用是提供名为“getHelloString”的业务接口,当开发者调用该接口时返回“Hello World!”字符串。
在开始开发工作之前,我们必须安装一些必需的软件。
- 下载、安装JDK5.0或者以上版本
JDK5.X是Java开发包的最新版本,请访问java.sun.com网站上下载安装版本,下载后安装到C:/jdk目录下,文章的后续内容中将使用%JAVA_HOME%变量来引用这个目录。 - 下载、安装Beehive1.0
现在我们开始创建HelloWorld!例子。在C:/创建目录”HelloWorld” (下面的例子中将使用%HELLOWORLD_HOME%引用这个目录)。
创建控件接口(HelloWorldControl.java),它的全部源代码见清单1。
清单1 srcorgvivianjeehiventrolsxamplesHelloWorldControl.java
1. package org.vivianj.beehive.controls.examples;
2.
3. import org.apache.beehive.controls.api.bean.ControlInterface;
4.
5.
6. public interface HelloWorldControl {
7. /* 声明需要封装的业务方法getHelloString */
8. public String getHelloString(String dest);
9. }
HelloWorldControl接口声明了一个业务方法getHelloString,它接收传入的String类型参数,返回内容也是String类型。这段代码中唯一让人困惑的是第5行的。是控件(Controls)架构中提供的注释,在接口声明前面使用注释表明接下来定义的这个接口是一个Java控件的公共接口。
接下来我们要创建控件实现类(HelloWorlControlImpl.java),它的全部代码见清单2。
清单2 srcorgvivianjeehiventrolsxamplesHelloWorlControlImpl.java
1. package org.vivianj.beehive.controls.examples;
2.
3. import org.apache.beehive.controls.api.bean.ControlImplementation;
4.
5.
6. public class HelloWorldControlImpl
7. implements HelloWorldControl,java.io.Serializable {
8.
9. /* 实现接口中声明的业务方法getHelloString */
10. public String getHelloString(String dest) {
11. return “Hello World!”;
12. }
13. }
HelloWorldControlImpl类继承了控件公共接口HelloWorldControl(参见清单1),提供了getHelloString方法的具体实现。在代码的第5行出现了@ ControlImplementation。@ ControlImplementation注释是控件(Controls)架构中提供的注释,在类声明前面使用ControlImplementation表明接下来定义的这个类是一个Java控件的接口实现类。
编译控件
下面的步骤是Windows平台下编译控件的主要步骤。
- 在%HELLOWORLD_HOME%目录下创建build.properties文件。文件内容如清单3。
清单3 build.properties
#请将beehive.home的属性修改为您安装Beehive的目录
beehive.home=c:/beehive - 在%HELLOWORLD_HOME%目录下创建build.xml文件,文件内容如清单4。
清单4 build.xml1. <project name="controls-blank" default="usage" basedir=".">
2.
3. <property environment="os"/>
4. <property file="build.properties"/>
5. <import file="/beehive-imports.xml"/>
6. <import file="/ant/beehive-tools.xml"/>
7.
8. <property name="source.dir" location="/src"/>
9. <property name="build.dir" location="/build"/>
10. <property name="build.classes" location="/classes"/>
11. <property name="build.beansrc" location="/beansrc"/>
12. <property name="build.jar" value="mycontrols.jar"/>
13.
14. <path id="build.classpath">
15. <pathelement path=""/>
16. <path refid="controls.dependency.path"/>
17. </path>
18.
19. <target name="clean" description="Delete all generated files">
20. <delete dir=""/>
21. <delete file="velocity.log"/>
22. </target>
23.
24. <target name="build" description="Build control sources">
25. <mkdir dir=""/>
26. <mkdir dir=""/>
27.
28. <build-controls srcdir=""
29. destdir=""
30. tempdir=""
31. classpathref="build.classpath"/>
32.
33. <control-jar destfile="/" basedir="" />
34. </target>
35.
36. <target name="usage" description="Print the usage for this build.xml">
37. <echo message=""/>
38. <echo message=""/>
39. <echo message="Controls Project Build file"/>
40. <echo message=""/>
41. <echo message=""/>
42. <echo message="----------------------------------------------------------------"/>
43. <echo message="| Standard Targets |"/>
44. <echo message="----------------------------------------------------------------"/>
45. <echo message="clean - Delete all generated files"/>
46. <echo message="build - Build control source files"/>
47. <echo message="----------------------------------------------------------------"/>
48. </target>
49.
50. </project> - 调整系统环境变量
打开命令行界面,进入%HELLOWORLD_HOME%目录,将%JAVA_HOME%/bin目录和%ANT_HOME%/bin目录加入到PATH环境中。随后调用build.xml中提供的build任务可以完成整个Web应用的编译工作。
在windows环境下编译时使用的命令如下,在其他环境下运行编译命令请参考不同操作系统的帮助文档进行修改。- 设置环境变量
C:HelloWorld> set path=%JAVA_HOME%/bin;%ANT_HOME%/bin
命令行中的%JAVA_HOME%指的是JDK的安装目录,%ANT_HOME%指的是ANT的安装目录,请根据您的环境替换它们的内容。 - 运行编译任务
C:HelloWorld> set path=%JAVA_HOME%/bin;%ANT_HOME%/bin 使用JUnit测试控件
JUnit是最常用的Java单元测试框架,为了测试新创建的控件,我们建立一个JUnit TestCase来测试它。在开发TestCase之前,我们需要准备些软件。
- 下载、安装Junit3.8.2
请访问www.junit.org下载JUnit3.8.2版本,将下载的zip文件解压缩到C:/junit目录下。
本文中的所有讲述均针对JUnit3.8.2版本,由于Junit4.X版本了的开发方式和JUnit3.8.2版本存在差异,如果您选择下载JUnit4.X版本,请根据实际情况进行调整。 - 安装BeehiveForJUnit.jar
本文所带例子HelloWorld.zip中的lib目录下也可以找到。
现在我们来创建控件的测试类(HelloWorldControlTest),它的全部代码见清单5。
清单5 testorgvivianjeehiventrolsxamplesNittestHelloWorldControlTest.java
1. package org.vivianj.beehive.controls.examples.unittest;
2.
3. import junit.framework.TestCase;
4.
5. import org.apache.beehive.controls.api.bean.Control;
6. import org.apache.beehive.test.tools.milton.junit.MiltonTestCase;
7. import org.vivianj.beehive.controls.examples.HelloWorldControlBean;
8.
9. /**
10. * HelloWorldControlTest用于
11. */
12. public class HelloWorldControlTest extends MiltonTestCase {
13.
14. /* 使用声明是实例化方式创建控件实例 */
15.
16. public HelloWorldControlBean _bean;
17.
18. /* 必须创建构造器,否则控件调用时无法获取上下文环境 */
19. public HelloWorldControlTest(String name) throws Exception
20. {
21. super(name);
22. }
23.
24. public void testGetHelloString() {
25. /* 调用HelloWorldControl控件的业务方法,获取返回字符串 */
26. String s = _bean.getHelloString("World");
27.
28. /* 使用JUnit的比对语句完成期望结果和控件调用返回结果值的比对 */
29. assertEquals(s, "Hello World!");
30. }
31.
32. public static void main(String[] args){
33. junit.textui.TestRunner.run(HelloWorldControlTest.class);
34. }
35. }
推荐阅讯
- Java入门需掌握的30个基本概念
- JBuilder2005实现重构之升级到JDK5.0
- 新一代Java技术即将出现
- 利用Java Applet编程实现动画特技(1)
- Java中文问题详解,底层编码解剖
- Java核心类库GNU Classpath 0.90发布
- Java学习从入门到精通(附FAQ)
- 用Java事件处理机制实现录制回放功能(1)
- 跨越边界: Java 模型以外的类型策略
- Java 技术与.NET 的集成将打破SOA 应用壁垒
阅读排行
- 1.Java连接SQL Server 2000
- 2.Java文件操作详解
- 3.Java控件设计入门
- 4.Java操作Excel电子表格
- 5.Java: JNI完全手册
- 6.Java命令行简介
- 7.开发J2EE应用应遵循的几点原则
- 8.Servlet与Javabean配置
- 9.Java规则引擎与其API应用详解
- 10.CLASSPATH详解
专题教程
- 大话G游 专题:手机病毒揭密
- ARP攻击防范与解决方案 路由故障处理手册
- Picasa中文版_Picasa教程 专题:清除流氓软件
- Firefox专题 seo搜索引擎优化专区
- 重装Windows必知的事情 装机之必备软件大行动
病毒专杀栏
