如何编写NetBeans插件
是否想在NetBeans IDE中添加功能或自动执行某些操作? 跟随我们编写您的第一个NetBeans插件。
让我们超越简单的工具栏示例 ,创建一个可以自动更新的插件。 该代码基于NetBeans的WakaTime插件 。 我们的示例插件将仅打印Hello World语句,并在可用的情况下更新至新版本……足以使您入门。
创建一个新的插件项目
选择File
-> New Project
然后选择NetBeans Modules
-> Module
作为项目类型。
为您的项目命名
选择插件的名称空间或代码名称
添加一个Java文件
插件起点
创建新的Java类文件后,使其扩展ModuleInstall并使用@OnShowing对其进行包装 ,使其仅在GUI加载后运行。
@OnShowing public class MyPlugin extends ModuleInstall implements Runnable { }
在您的OnShowing
按ALT + ENTER ,然后Search Module Dependency for OnShowing
选择Search Module Dependency for OnShowing
将Window System API导入到项目中。 这将为您的项目添加新的依赖关系,并将必要的import语句添加到文件顶部。 还要对ModuleInstall
执行此ModuleInstall
。
有时NetBeans org.openide.util
依赖项,因此您可能必须手动添加该依赖项。 为此,右键单击MyPlugin,然后选择Properties
。
选择类别Libraries
然后单击Add...
键入org.openide.util
然后单击OK
。 这会将依赖项添加到您的project.xml
文件中。
在MyPlugin类上按ALT + ENTER ,然后选择Implement all abstract methods
。
最后一件事,将此行添加到manifest.mf
文件。 OpenIDE-Module-Install: org/myorg/myplugin/MyPlugin.class
现在,将在插件加载后执行run()
方法。
记录中
让我们将println
输出输出到NetBeans IDE日志中。 首先,将记录器设置为MyPlugin类的属性。
public static final Logger log = Logger.getLogger("MyPlugin");
按ALT + ENTER导入java.util.logging.Logger 。
用log.info("MyPlugin has loaded.");
替换println
log.info("MyPlugin has loaded.");
。
自动更新您的插件
在MyPlugin包中创建一个新的Java文件UpdateHandler.java
。
用UpdateHandler.java替换此文件的内容。 搜索模块依赖项,并通过在每个import语句上按ALT + ENTER添加任何缺少的依赖项。
将这些行添加到manifest.mf
文件中。
OpenIDE-Module-Layer: org/myorg/myplugin/layer.xml OpenIDE-Module-Implementation-Version: 201501010101
在MyPlugin包中创建一个新的XML文档。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.2//EN" "http://www.netbeans.org/dtds/filesystem-1_2.dtd"> <filesystem> <folder name="Services"> <folder name="AutoupdateType"> <file name="org_myorg_myplugin_update_center.instance"> <attr name="displayName" bundlevalue="org.myorg.myplugin.Bundle#Services/AutoupdateType/org_myorg_myplugin_update_center.instance"/> <attr name="enabled" boolvalue="true"/> <attr name="instanceCreate" methodvalue="org.netbeans.modules.autoupdate.updateprovider.AutoupdateCatalogFactory.createUpdateProvider"/> <attr name="instanceOf" stringvalue="org.netbeans.spi.autoupdate.UpdateProvider"/> <attr name="url" bundlevalue="org.myorg.myplugin.Bundle#org_myorg_myplugin_update_center"/> </file> </folder> </folder> </filesystem>
将此代码添加到run()
方法内的MyPlugin类中。
WindowManager.getDefault().invokeWhenUIReady(new Runnable () { @Override public void run() { UpdateHandler.checkAndHandleUpdates(); } });
将这些行添加到Bundle.properties
文件中:
Services/AutoupdateType/org_myorg_myplugin_update_center.instance=MyPlugin UpdateHandler.NewModules=false org_myorg_myplugin_update_center=https\://example.com/updates.xml
现在,每次NetBeans重新启动并启动插件时,它将通过从example.com下载updates.xml
来检查更新。
您的updates.xml文件告诉NetBeans从何处获取插件的新NBM。 要创建用于发布插件的NBM,请右键单击MyPlugin项目,然后选择Create NBM
。 NBM文件是您将发布到NetBeans插件门户的文件 。
有关在GitHub上托管updates.xml
的示例,请查看WakaTime NetBeans插件中的 update.xml和对应的Bundle.properties 。
翻译自: https://www.javacodegeeks.com/2015/02/write-netbeans-plugin.html