IDEA插件开发-File -> New 中添加一个mybutton

news/2024/7/16 8:34:49 标签: intellij-idea, java, ide

写一个IDEA插件,在IDEA的File -> New 中添加一个mybutton ,点击mybutton 后弹出一个提示对话框:被点击了

1. **设置开发环境**:
   - 安装IntelliJ IDEA,并确保您的IDEA版本支持插件开发。
   - 在IDEA中创建一个新的Java项目,并配置好Maven或Gradle作为构建工具。

2. **配置插件信息**:
   - 在项目的`resources`目录下创建一个名为`META-INF`的文件夹。
   - 在`META-INF`文件夹中创建一个名为`plugin.xml`的文件,这是插件的配置文件。在这个文件中,您需要定义插件的基本信息,如名称、版本、作者等。

   ```xml
   <idea-plugin version="2">
     <id>com.example.mybutton</id>
     <name>My Button</name>
     <version>1.0</version>
     <vendor>Example Inc.</vendor>
   </idea-plugin>
   ```

3. **实现插件功能**:
   - 创建一个新的Java类,例如`MyButtonAction`,并继承`AnAction`类。
   - 在`MyButtonAction`类中,实现`actionPerformed`方法,在该方法中编写点击按钮后的行为,例如弹出对话框。

   ```java
   import com.intellij.openapi.actionSystem.AnAction;
   import com.intellij.openapi.actionSystem.AnActionEvent;
   import com.intellij.openapi.ui.Messages;

   public class MyButtonAction extends AnAction {
       @Override
       public void actionPerformed(AnActionEvent event) {
           Messages.showMessageDialog("被点击了", "提示", Messages.getInformationIcon());
       }
   }
   ```

4. **注册插件**:
   - 在`plugin.xml`文件中注册您的`MyButtonAction`类,以便IDEA知道这个动作。

   ```xml
   <idea-plugin version="2">
     <!-- ... 其他配置 ... -->
     <actions>
       <action id="MyButton" class="com.example.MyButtonAction" text="My Button" description="Click me!">
         <add-to-group group-id="NewMenu" anchor="last"/>
       </action>
     </actions>
   </idea-plugin>
   ```

5. **构建和安装插件**:
   - 使用Maven或Gradle构建您的插件项目。
   - 将构建好的插件(通常是一个`.zip`文件)安装到IDEA中,通过`File -> Settings -> Plugins -> Install Plugin from Disk`。

6. **测试插件**:
   - 重启IDEA,确保插件已激活。
   - 尝试点击新添加的“My Button”菜单项,并检查对话框是否按预期弹出。


http://www.niftyadmin.cn/n/5460307.html

相关文章

备战蓝桥杯---树学初步1

LCA&#xff08;最近公共祖先&#xff09; 定义&#xff1a;有根树的两个节点u,v&#xff0c;他们的LCA是一个节点x,其中x是他们的公共祖先并且X的深度尽可能大。 法1---Tarjan算法&#xff1a; 核心&#xff1a;DFS并查集 在并查集中建立仅有u的集合&#xff0c;设该集合祖…

Codigger开发者篇:开启全新的开发体验(二)

在数字化浪潮中&#xff0c;开发者们始终在追求更加高效、便捷的开发工具与环境。Codigger&#xff0c;作为新一代开发、运营、使用私人应用的分布式操作系统&#xff0c;正是为这些追求者们量身打造的利器&#xff0c;Codigger是一个跨时代的颠覆式的创新。今天&#xff0c;我…

android PKMS服务

前面我们介绍过Android AMS服务&#xff0c;今天我们看一下PKMS(PackageManagerService)服务&#xff0c;PKMS也是android系统中核心服务之一&#xff0c;负责应用程序的安装&#xff0c;卸载&#xff0c;信息查询等工作。 PKMS的启动 首先启动创建PKMS: private void start…

命名空间【C++】(超详细)

文章目录 命名空间的概念命名空间的定义命名空间定义的位置作用域每一个命名空间都是一个独立的域作用域符&#xff1a;&#xff1a; 编译器找一个变量/函数等的定义&#xff0c;寻找域的顺序为什么要有命名空间&#xff1f;1.解决库与程序员定义的同名的重定义问题2.解决程序员…

[flask]请求全局钩子

flask从入门到精通之钩子、异常、context、jinjia模板、过滤器 - 异步非阻塞 - 博客园 (cnblogs.com) 参考的这个博客&#xff0c;但有一个需要注意的是&#xff0c;最新版本的flask不知道是不是更新了还是怎么了&#xff0c;他的before_first_request不见了&#xff0c;如果继…

WEPE系统安装纯净版window11教程(包含pe内系统安装方法)

目录 一.安装u盘启动盘 1.1制作安装系统引导盘 1.2下载保存windows镜像 1.3根据自己电脑品牌查询进入BIOS设置的方法 1.4我们成功进入了PE 二.重装系统 2.1遇到问题 2.2重新来到这个界面 三.PE中基本软件的作用 四.学习声明 今天不敲代码&#xff0c;今天来讲讲We P…

Java-常见面试题收集(七)

十四 MySQL 1 MySQL 支持的存储引擎 MySQL 支持多种存储引擎&#xff0c;常见的有2种&#xff0c;你可以通过 show engines 命令来查看 MySQL 支持的所有存储引擎。MySQL 当前默认的存储引擎是 InnoDB。并且&#xff0c;所有的存储引擎中只有 InnoDB 是事务性存储引擎&#xf…

服务器大请求体问题定位

背景 整个系统,分位微服务A、微服务B,A在调用B的过程中,报400BadRequest,问题定位到修复后,如何发送一个同样的请求进行验证 解决过程 1、查询A服务的日志,发现在调用B的过程中报错400BadRequest,并且请求体非常大300多KB 2、查看B服务的日志,发现请求没有进来 3、发…