前言
前几天一直在学习Netty框架,写了几个Demo,然后就想着可以用它来写点什么,然后又对编写idea的插件有点兴趣,那么就准备写一个idea插件.
写什么好呢,想起可以写一个Redis连接客户端的插件,这个也可以用上Netty,虽然市面上已经有很多redis的客户端,例如:Redis Desktop Manager这类的,不过很多是付费的,想白嫖需要找破解版,自己写的功能上虽然简陋,不过胜在使用方便,不用另开程序.很多时候也仅仅是想看看redis里数据有没有保存上,所以也够用了.
想要完成这个插件 需要掌握Netty和java Gui的一些知识,如果你完全不了解的话可以先看一下这方面的内容
创建项目
可以看到idea可以直接选择创建插件项目
生成的项目结构
里面会有一个 plugin.xml文件,这个是插件的一个重要配置文件
src 下编写代码
设计ui界面
我们要写一个侧边的工具窗口,那么就需要界面布局,idea里使用 swingUi
按照图上选择 就会生成一个ui编辑器
只需从右侧拖拽到中间的框内就可以完成ui布局,你完成的布局他会同时为你生成一个对应的实体类 你想为哪个组件生成实体类中的字段就要在 field name 这里指定字段名称
最终会生成如下图的一个实体类
然后就可以在实体类中编写业务代码了
核心代码
话不多说,先上代码
public class RedisCliUi {
//这里都是生成的组件字段
private JButton connectButton;
private JTextField portText;
private JTextField commandText;
private JButton commandButton;
private JTextField ipText;
private JTextArea textArea;
private JLabel ipLabel;
private JLabel portLabel;
private JLabel commandLabel;
private JPanel redisPanel;
private JButton cleanButton;
private JButton closeButton;
private JScrollPane scrollPane;
static String line = "\r\n";
static ChannelHandlerContext Context;
//实体类构造
public RedisCliUi(Project project, ToolWindow toolWindow) {
// 连接按钮监听
connectButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(Ac