希望 NetBeans 为您提供更多功能吗?
  您希望倾心投入到 NetBeans 的开发中,并希望它能激发您开发另一个应用程序的热情。您希望聆听音乐、浏览网页、查看邮件、存储喜欢的 URL,以及维护日常任务 —— 所有这些都可在 NetBeans 内部完成。那么,我们来看看如何添加所有这些需要的功能?

  NetBeans IDE 是一个基于插件的开发环境。换句话说, NetBeans 有一个 模块化的架构。简单地说,我们拥有一个最基本的集成开发环境,然后通过编写插件来扩展 IDE,从而丰富它的功能。NetBeans 平台 就是这种基本 IDE。您看到的大多数 NetBeans 中的功能是由这些插件实现的。

  NetBeans 插件模块和相关后台

  顾名思义,插件模块就是插入到 NetBeans IDE 中用于提供某些特定功能的模块。插件可以拥有图形用户界面,也可能没有图形用户界面。我们已着手将插件的概念更好地付诸实践,我确信您已经安装了不只一个 Mozilla Firefox 插件使您享受更好的浏览体验。

  基本术语请参阅 http://platform.netbeans.org/tutorials/nbm-glossary.html。

  NetBeans Platform:主干应用程序,它提供大多数应用程序所需的全部内容,而大多数应用程序不需要的内容则不提供。NetBeans Platform 提供了一个应用程序的常用需求,例菜单、 文件管理和设置 —— 全部是即开即用的。“在 NetBeans 上”构建一个应用程序意味着,不是从头开始编写应用程序,而是只提供 NetBeans Platform 尚不具有的应用程序部分。开发周期结束时,您将您的应用程序与 NetBeans Platform 一起打包,从而节省了大量时间和精力,并获得强健可靠的应用程序。

  System Filesystem:常规注册表,它包含从已注册模块的 layer.xml 配置文件中构建的 NetBeans 配置信息。NetBeans 将各种配置信息存储在 System Filesystem 中。例如,System Filesystem 包含一个 Menu 文件夹,该文件夹包含了一个具有名称(例如 File 和 Edit)的子文件夹。这些子文件夹包含代表 Java 类的文件,这些类执行在 IDE 的“File”和“Edit”菜单中出现的操作。

  Module:一组 Java 类,提供具有特定功能的的应用程序。Java 类使用 manifest.mf 文件声明模块和 layer.xml 配置文件,用以在 System Filesystem 中注册它们的功能。在 NetBeans 术语中“plugin” 是一个形容词 而“module”是一个名词。二者之间没有没有明显的语义差异。

  NetBeans API:插件模块编写人员都可以使用的公共接口和类。根据它们提供功能的不同类型,将它们分为特定的应用程序接口(API)。正如 API 参考文档中指定的,Java 源包及其子包的内容和行为就是 API。要获得全部 NetBeans 应用程序接口列表(NetBeans API List),请单击 此处。

  Module Suite:一组部署在一起相互依赖的模块。IDE 帮助您标记该套件 —— 例如您可以添加一个启动画面,您还可以指定不想让应用程序提供的一部分 NetBeans 平台。

  编写第一个插件

  您现在会看到怎样写入第一个插件。插件将做些什么?除了在编辑器中创建一个“Start Page”选项卡之外还能创建另一个“选项卡”。

  不,还不够漂亮,但足以达到演示的目的了 :-)

  创建新模块项目

  创建一个新的模块项目,将它命名为“nbmodule-demo”。

  选中“Standalone Module”选项。

  基本的模块配置

  代码基(Code Name Base):将 'myorghere' 替换为 'mymodule' 从而获得“org.mymodule.nbmoduledemo”。

  模块显示名称(Module Display Name):nb-module-demo

  本地化捆绑(Localizing Bundle):保持默认。该插件指定了用于国际化特定于语言的字符串。

  XML 层(XML Layer):保持默认。它在 NetBeans System Filesystem 中注册像菜单和工具栏按钮这样的项目。

  单击“Finish”按钮。

  系统生成了项目代码结构:

  主干模块现在准备就绪。接下来,我们将为希望模块执行的特定任务添加代码。

  添加一个“Window Component”

  右键单击'org.mymodule.nbmoduledemo'选项。

  选择“New-> Window Component”。

  新窗口(New Window)

  窗口位置(Window Position):“editor”,目的是向编辑器中添加一个“选项卡”。

  选中“Open on Application Start”选项。

  在“Class Name Prefix”字段中输入“AppUIMain”。

  如果您愿意您可以选择一个图标。

  单击“Finish”按钮。

  三个新文件已添加到“org.mymodule.nbmoduledemo”项目源包中。

  “AppUIMainTopComponent.java”是一个决定插件 GUI 的文件。切换到设计视图。

  分别添加一个“Label”、“Combo box”和“Button”:

  现在插件准备就绪。

  在 NetBeans 中加载插件模块

  右键单击模块项目并选择“Install/Reload in Target Platform”。

  一个新的 NetBeans 实例启动,您可以看到新的“选项卡”。

  注释

  本文演示了如何通过插件模块轻松地扩展 NetBeans。完整项目请点击 此处 下载。要了解更多关于教程、文档方面的信息,请访问参数资料部分的链接。

作者:Amit Kumar Saha   

NetBeans 插件开发简介的更多相关文章

  1. netbeans 优化设置

    下面我就以Windows上的NetBeans安装为例,说说如何配置字体. 1.NetBeans界面上的普通字体大小,可以通过配置NetBeans安装目录下netbeans.conf启动文件来实现,这个 ...

  2. PS插件开发plugin

    Photoshop插件开发 VC++制作Photoshop自动化插件:http://blog.sina.com.cn/s/blog_73c52fda0101c7hw.html Photoshop 的扩 ...

  3. 老李分享:持续集成学好jenkins

    老李分享:持续集成学好jenkins   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.poptest测试开发工程师就业培训请大 ...

  4. Jenkins知识地图

    转自:http://blog.csdn.net/feiniao1221/article/details/10259449 这篇文章大概写于三个月前,当时写了个大纲列表,但是在CSDN上传资源实在不方便 ...

  5. Redmine it!

    redmine插件开发简介 最稳妥的学习应该是先看官方文档,官方还给了一个具体的插件开发教程,不过如果一步不差按照教程敲代码,其实会发现还是有些问题的,需要稍稍改动. 这里,我自己编写了一个简单的插件 ...

  6. gulp初体验记录(简介、插件开发介绍)

    目前用的业界比较知名的三个前端构建工具:grunt.gulp.fis,自己此前一直都是只在用grunt,fis看过一点,gulp则一直都没注意过,直到最近发现好像用的人越来越多,所以今天也就抽了点时间 ...

  7. rhythmbox插件开发笔记1:简介&入门

    rhythmbox是gnome下一款开源的音乐播放软件.ubuntu和fedora的桌面环境中均默认安装了rhythmbox. rhythmbox架构非常灵活,几乎所有地方都可以用插件来修改.用户想实 ...

  8. NetBeans简介和简单使用

    1.什么是NetBeans? NetBeans IDE:可以使开发人员利用Java平台能够快速创建Web.企业.桌面以及移动的应用程序: 支持语言:PHP.Ruby.JavaScript.Groovy ...

  9. [转]Eclipse插件开发之基础篇(6) SWT简介

    原文地址:http://www.cnblogs.com/liuzhuo/archive/2010/09/01/eclipse_plugin_1_3_1.html SWT(Standard Widget ...

随机推荐

  1. 将 Windows VM 移到其他 Azure 订阅或资源组

    本文逐步说明如何在资源组或订阅之间移动 Windows VM. 如果最初在个人订阅中创建了 VM,现在想要将其移到公司的订阅以继续工作,则在订阅之间移动 VM 可能很方便. Important 不可在 ...

  2. load data infile出现“ERROR 13 (HY000): Can't get stat of '/tmp/test2.txt' (Errcode: 2)”问题

    用load data infile导数据到mysql数据库出现这个该问题,解决方法如下: 安全起见,连接mysql的语句需要添加–local-infile, mysql -hlocalhost -ur ...

  3. sql点滴—mysql中查询表的信息

    mysql中查询表的信息 查询mysql表字段信息的sql语句 SHOW DATABASES //列出 MySQL Server 数据库. SHOW TABLES [FROM db_name] //列 ...

  4. MyBatis 中的级联

    MyBatis 的级联分为 3 种. 1.鉴别器(discriminator):它是根据某些条件决定采用具体实现类级联的方案,比如体检表要根据性别去区分. 2.一对一(association):比如学 ...

  5. SDN 期末作业验收

    前言 SDN 期末作业验收我们是采用的参考场景一,我们在此场景的基础上来做负载均衡,下面是我们搭建的拓扑图 演示视频 https://pan.baidu.com/s/1htkKLPM 负载均衡程序 相 ...

  6. Alpha冲刺报告(5/12)(麻瓜制造者)

    今日已完成 明日计划 部分api示意图 燃尽图 scrum会议照片 今日已完成 邓弘立: 完成部分首页逻辑功能 符天愉: 写代码写着写着想起来昨天的登录接口有个非常zz的逻辑错误,今天修改完后应该没有 ...

  7. C语言:值传递,地址传递和引用传递(example:值交换)

    于C语言中值传递.地址传递和引用传递的我个人理解. 通过一个例子:swap(交换两个整型变量的值)来表现! #include <stdio.h> void swap1(int* a,int ...

  8. js面对对象编程(二):属性和闭包

    上篇博客中解说了一些js对象的基本概念和使用方法.这篇博客解说一下js属性方面的:公有属性.私有属性,特权方法. 假设学过java.公有属性.私有属性,特权方法(即能够訪问和设置私有属性的方法)一定非 ...

  9. JavaScript定时器的工作原理(翻译)

    JavaScript定时器的工作原理(翻译) 标签(空格分隔): JavaScript定时器 最近在看ajax原理的时候,看到了一篇国外的文章,讲解了JavaScript定时器的工作原理,帮助我很好的 ...

  10. 【Git123】Git

    https://www.cnblogs.com/jager/p/6684637.html 四.git工作原理 这边文章介绍的不错 Git from the Bottom Up 六.git常用命令 wo ...