注册通行证 用户名 密码
  • 文章投稿
  • 博客
  • 论坛
  • 设为首页
  • 加入收藏
jztop.com网络技术
  • 首页
  • | iT新闻
  • | 操作系统
  • | 组网建网
  • | 网络安全
  • | 程序开发
  • | 办公一族
  • | 工具软件
  • | 网页制作
  • | 多媒体制作
  • | 网吧技术
  • | 服务器
  • | 专题教程
Vista | 软件评测 | 系统备份 | 优化 | 进程 | 聊天 | 病毒 | Linux | 黑客 | 防火墙 | 数据库 | Web开发 | Java | Word | 游戏 | 32位开发 | 移动开发
当前位置:首页 > 程序开发 > Java 内容正文:Java控件设计入门

Java控件设计入门

发布时间:2006-09-19 18:18:23 来源:BEA中国 网友评论 0 条
  第一个例子—Hello World!

  下面我们通过一个简单的Hello World!的例子来介绍如何开发一个具备基本功能的控件。这个控件的唯一作用是提供名为“getHelloString”的业务接口,当开发者调用该接口时返回“Hello World!”字符串。

  在开始开发工作之前,我们必须安装一些必需的软件。
  1. 下载、安装JDK5.0或者以上版本

    JDK5.X是Java开发包的最新版本,请访问java.sun.com网站上下载安装版本,下载后安装到C:/jdk目录下,文章的后续内容中将使用%JAVA_HOME%变量来引用这个目录。
  2. 下载、安装Beehive1.0
  Beehive是Apache组织的一个开源项目,请访问www.apache.org网站上下载最新的可执行版本,下载后解压缩到C:/beehive目录下,文章的后续内容中将使用%BEEHIVE_HOME%变量来引用这个目录。

   现在我们开始创建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平台下编译控件的主要步骤。
  1. 在%HELLOWORLD_HOME%目录下创建build.properties文件。文件内容如清单3。

    清单3 build.properties

    #请将beehive.home的属性修改为您安装Beehive的目录

    beehive.home=c:/beehive

  2. 在%HELLOWORLD_HOME%目录下创建build.xml文件,文件内容如清单4。

    清单4 build.xml
    1. <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>
  3. 调整系统环境变量

    打开命令行界面,进入%HELLOWORLD_HOME%目录,将%JAVA_HOME%/bin目录和%ANT_HOME%/bin目录加入到PATH环境中。随后调用build.xml中提供的build任务可以完成整个Web应用的编译工作。

    在windows环境下编译时使用的命令如下,在其他环境下运行编译命令请参考不同操作系统的帮助文档进行修改。

    1. 设置环境变量
    C:HelloWorld> set path=%JAVA_HOME%/bin;%ANT_HOME%/bin
    控件入门 图-5命令行中的%JAVA_HOME%指的是JDK的安装目录,%ANT_HOME%指的是ANT的安装目录,请根据您的环境替换它们的内容。
  4. 运行编译任务
  使用Ant运行编译任务。
  
C:HelloWorld> set path=%JAVA_HOME%/bin;%ANT_HOME%/bin  使用JUnit测试控件

  JUnit是最常用的Java单元测试框架,为了测试新创建的控件,我们建立一个JUnit TestCase来测试它。在开发TestCase之前,我们需要准备些软件。
  1. 下载、安装Junit3.8.2

    请访问www.junit.org下载JUnit3.8.2版本,将下载的zip文件解压缩到C:/junit目录下。

    本文中的所有讲述均针对JUnit3.8.2版本,由于Junit4.X版本了的开发方式和JUnit3.8.2版本存在差异,如果您选择下载JUnit4.X版本,请根据实际情况进行调整。
  2. 安装BeehiveForJUnit.jar
  控件是一种比较特殊的框架,需要对JUnit进行扩展才能完成单元测试,在资源区中可以找到下载BeehiveForJUnit.jar的超链接。下载后,请将该文件拷贝到%HELLOWORLD_HOME%ib目录下。

  本文所带例子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. }

 2/3   |‹ ‹‹ 1 2 3 ›› ›|
相关文章
  • 特效:CSS+Javascript实现表格背景变色
  • 在Javascript中,什么是闭包(Closure)
  • IE和FireFox下javascript读写XML实现广告轮换
  • Javascript函数 判断数字的合法性
  • Javascript数组 sort方法的分析
【评论】【收藏本文】【打印】【关闭】
上一篇文章:Eclipse 插件功能研究
下一篇文章:解析Java类和对象的初始化过程
讨论区
查看
已有 0 位对此新闻感兴趣的网友发表了看法
匿名发表
注册通行证 登陆
图文阅读推荐
Java控件设计入门
Java控件设计入门
推荐阅讯
  • 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必知的事情 装机之必备软件大行动
病毒专杀栏
  • 杀毒软件反被病毒杀 连"救命"都不能喊
  • 金山ARP防火墙
  • 还原卡神话破灭“机器狗”病毒来势汹汹
  • cctv经济半小时:你的手机现在安全吗?
  • 新挂马方式开始流行 ARP挂马称雄局域网
  • 木马和病毒清除的通用解法
  • IP地址不再冲突 查找ARP攻击者元凶
  • 教你几招识别和防御Web网页木马
  • 分析:封杀BT只是暂时的止痛药
  • QQ爆危险漏洞,“QQ游戏邀请大盗”邀请你玩病
关于我们 | 诚聘英才 | 联系我们 | 版权声明 | 网站大事 | 网站地图 | 意见建议
CopyRight 2005-2007 Jztop.Com 版权所有 未经许可 请勿转载