欢迎进入NetBeans 平台的富客户端开发世界。 虽然因特网的蓬勃发展使得人们更热衷于服务器端的开发,但对高质量桌面软件的需求却从未减少,反而在一定程度上有所增加。其中部分原因包括: ● Web页面—— 通常作为服务器驱动的应用程序的界面,经常无法充分满足最终用户的需求。 ● 并不是所有的应用都要求持续的网络连接,很多应用需要脱机运行。 本书将重点介绍如何使用NetBeans平台作为框架,开发“一次编写,处处运行”的富客户端应用程序。NetBeans平台是NetBeans IDE(集成开发环境)的基础。数以万计的开发者利用NetBeans IDE完成了不同规模和复杂度的应用程序。毋庸置疑,NetBeans平台十分强大而健壮,完全可以作为大多数应用程序的基础,无论它们是商业的还是内部的解决方案。除此之外,本书还会介绍如何编写应用于NetBeans IDE本身的插件模块。 富客户端应用程序 “富客户端应用程序”到底是指什么呢?富客户端应用程序是指绝大多数功能(可以不是全部)运行在用户本地系统上的应用程序。与之相反的是Web应用程序,它的所有功能完全依赖于运行在远程服务器上的代码,用户通常使用Web浏览器访问Web应用程序。“富客户端”这个词可以被当作是 “桌面应用程序”的一个时髦的绰号。举例来说,NetBeans IDE本身就是一个典型的富客户端应用程序。 什么是NetBeans NetBeans是一个流行的、屡获殊荣的、用于Java开发的集成开发环境(IDE)。它的核心是NetBeans平台—— 一个模块化的、可扩展的应用程序框架。所以,NetBeans IDE本身是NetBeans 平台以及一系列模块的完美集合。 在早期发展阶段,为了使NetBeans IDE的开发更加灵活,它的体系结构被设计得高度模块化。NetBean IDE模块化的体系结构带来了如下优势: ● 创建新特性十分简单。 ● 用户可以轻松地增加或删除功能。 ● 安装后,用户可以方便地更新某个特性,而不会影响其他功能。 NetBeans平台高度模块化的特点吸引了全世界的众多开发者。数量众多的NetBeans平台应用应运而生。NetBeans IDE就是其中最著名的一个。NetBeans平台被用于各行各业的应用程序的开发,从语音处理到地质填图再到股票交易。 为什么使用NetBeans 基于NetBeans平台的应用程序有很多优势,其中首屈一指的当然是其真正的跨平台特性。实际上,开发跨平台的富客户端应用程序有很多种方法。例如,可以使用Swing组件自行编写桌面应用程序的所有模块。但是,如果使用NetBeans平台的话,可以直接使用应用程序所需的众多强大的构造模块和底层构架,不用再像以前那样从头开始编码了。显然,这将节省大量的时间。开发者可以根据应用程序的逻辑编写新的Swing组件,并将其加入到NetBeans平台中,也可以在NetBeans平台中直接使用诸如JGraph、JFreeChart等第三方库。总而言之,利用NetBeans平台可以很容易地开发出健壮且灵活的应用程序。开发者只需要关注应用程序的业务逻辑。就像JSF(JavaServer Faces)技术和Struts是为了Web开发而生,NetBeans平台是为了Swing开发而生。 以下是NetBeans平台最突出的几个优势: ● NetBeans是免费的,任何人都可以免费使用其代码,无论将它用于开发商业软件还是非商业软件都是如此。 ● NetBeans是一个成熟的、功能丰富的应用程序框架。NetBeans平台由众多的组件构成,它们原本是为NetBeans IDE服务的—— 不计其数的软件工程师使用过NetBeans IDE。但实际上,NetBeans平台可以用来开发任何类型的桌面应用程序,不仅仅是某种集成开发环境或类似的应用。NetBeans平台为应用程序提供了高质量的基础。 ● NetBeans是一个真正的“一次编写,处处运行”的平台。NetBeans基于Swing—— 一个纯Java的可视化工具集,它是所有桌面Java安装版的一部分。 ● NetBeans技术是标准化的、开源的。这意味着,任何人都不用担心在NetBeans平台基础上进行开发会产生专利锁定的问题。 ● NetBeans IDE的插件拥有大量的潜在用户。假如某人希望向公众展示一些新技术,他只需要开发一个相应的NetBeans IDE插件模块,将其发布在NetBeans 插件的门户网站上,立刻就可以轻松地吸引众多用户。 ● NetBeans拥有一个活跃的社区。NetBeans平台的成长正是得益于这个强大社区中的众多开发者,他们热切地希望与大家共享他们的经验。如果你正好有一个关于NetBeans的问题,那么请去社区中寻找答案。因为很可能某人曾经遭遇过和你一样的问题,他可以帮助你。 NetBeans平台为开发者提供哪些资源 NetBeans平台为开发者提供的资源包括:一系列丰富的基础功能,可用于创建新特性的扩展API,以及一组用来协助开发的强大工具。 开发基于NetBeans平台的应用程序时,开发者可以利用的资源包括: ● 窗口系统(Window System),它极大地简化了在一个frame中对众多组件的操作。 ● 操作系统(actions system),利用它可以简单地以声明的方式安装或卸载菜单项、工具栏、键盘快捷键等资源。 ● 自动更新机制,为应用程序提供了一种动态更新的方式。 ● NetBeans IDE本身提供的所有特性都可以用来简化应用程序的开发。例如,代码补全和高效的GUI编辑器(之前的代号叫做Matisse)—— 通过简单地拖拽和重新排列组件,能够可视化地创建用户界面。除此之外,NetBeans IDE还提供了针对模块开发的特殊功能。例如模块模板和方便的模块测试功能 —— 随时可以把模块安装或者重新载入到当前运行的IDE中。 ● 得益于NetBeans平台所鼓励使用的模块化编码技术,基于NetBeans平台的应用程序会更加健壮。 为什么阅读本书 NetBean IDE越来越流行,同时,越来越多的人已认识到利用NetBeans平台可以很方便地创建任何类型的桌面应用程序。显然,大家急切地需要一本指导书。实际上,有很多NetBeans平台的信息都散布在不同地方,但没有一本完整的教材来演示如何使用整个NetBeans平台。本书集作者多年积累的经验、最佳实践和实用信息于一身。 本书将帮助读者快速掌握模块的开发,并且指导读者学习绝大多数重要的API。在这个过程中,读者也将学习到一些使NetBeans可靠而又灵活的开发实践。 如何使用本书 本书由22个章节、2个用例及3个附录组成。 ● 第1章,做一些准备工作,演示创建一个模块的基本过程。 ● 第2章和第3章,讨论模块化开发的优势并提供NetBeans平台模块化构架的概况。 ● 第4章和第5章,解释NetBeans模块协同工作的基本概念,展示NetBeans平台使得模块化应用高耦合的机制。 ● 第6章,介绍文件系统(Filesystems)API,它是NetBeans平台处理用户数据和系统配置数据的基础构架。 ● 第7章,巩固第6章的内容,并且展示如何基于NetBeans平台创建一个简单的导航(Navigator)组件。 ● 第8章,解释并演示在NetBeans中创建一个成熟的多窗口应用程序所需的组件和特性。 ● 第9章,介绍Node和Explorer API,利用它们可以以多种方式向用户展示数据结构。 ● 第10章,重点介绍数据系统(Datasystems)API,利用它可以以多种方式、简单地在程序中操作特定类型的文件。 ● 第11章,介绍NetBeans IDE的GUI构建器,演示如何利用它简化基于NetBeans平台应用程序的用户界面开发。 ● 第12章,在第11章的基础上,展示如何为单个文件的内容提供多种表现形式。 ● 第13章和第14章,展示为某种文件类型加入编辑特性的方法。 ● 第15章,解释如何创建一个对象调色板,并通过一个实例演示如何实现从调色板中拖拽代码片段到文本编辑器中。 ● 第16章和第17章,介绍如何开发更多的编辑特性。 ● 第18章,演示如何为应用程序加入用户定制选项。 ● 第19章,以Wicket为例,介绍如何为IDE加入对Web应用框架的支持。 ● 第20章,介绍如何让NetBeans平台应用程序支持使用Web服务。 ● 第21章,演示如何在应用程序中集成帮助文档。 ● 第22章,展示如何将更新后的模块(和新模块)加入到用户的动态更新中心。 ● 最后两章是NetBeans平台的用户案例。第23章介绍的案例演示了如何在NetBeans IDE中集成现有开发工具。第24章的案例展示了如何创建一个创建音频的编辑器。 ● 附录中的信息有助于学习如何提高代码的健壮性、可读性、灵活性及性能。 本书并没有涉及到很多NetBeans IDE本身的一些特性,而是更关注实现这些特性的API。如果读者对如何使用NetBeans IDE开发标准Swing、Web、企业、移动或者其他Java应用程序感兴趣,可以找到很多优秀的参考资源。例如NetBeans IDE Field Guide一书(同样由Prentice Hall出版),NetBeans IDE自带的文档,以及和网站上的资源。 没有一本参考书可以代替所有参考文档,本书也不例外。读者可以在NetBeans平台的网站上找到完整的NetBeans API参考文档。或者直接通过NetBeans IDE的“更新中心”下载它。开发者问题集也是一个很好的资源,读者可以在其中查到不断重复的问题的答案。NetBeans邮件列表—— 特别是 dev@openide.netbeans.org邮件列表 —— 对于寻求罕见问题的答案特别有用。如果读者正计划开发NetBeans模块,我们强烈建议注册参与这个邮件列表。通过它,读者可以与整个NetBeans开发团队和社区交流。当然,其中也包括本书的作者。 在开始开发NetBeans模块之前,最好检查一下更新中心(在“工具”菜单中),确保拥有最新版本的NetBeans模块开发工具。这些工具包含很多模板以及其他简化模块开发的特殊支持。 如何更新 访问本书的主页下载更新和其他额外的内容。本书的内容主要针对NetBeans平台的5.5版本,它是目前最新的正式发布版。新版本会持续地跟进。尽管本书的内容对NetBeans 6.0版本也有价值,同时也适用于未来的其他版本。但建议读者最好访问“升级指南”以便能在学习5.5版本之后明白有哪些API改变了、增强了或是抛弃了。本书会对6.0版本改变的地方加以特别注明。 ??