目录
一、应用介绍
首先给大家展示个截图,它就长这个样:
1. 功能介绍:
1)支持模板下载
2)推送微信服务号模板消息。
3)支持暂停续发数据不会重复发送
4)支持日志execel表形式下载
二、界面部分Java代码分享
1.基础UI界面代码如下
package com.zzx.core;
import com.zzx.listener.DownloadListener;
import com.zzx.listener.StartListener;
import com.zzx.listener.StopListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import javax.swing.*;
import java.awt.*;
@Component
public class UI implements Runnable {
private UICore uiCore;
private JTextField tokenField = new JTextField();
private JTextField execelField = new JTextField();
private JTextField jsonField = new JTextField();
private JTextField threadField = new JTextField();
private JButton download;
private JButton start;
private JButton stop;
@Autowired
DownloadListener downloadListener;
@Autowired
StartListener startListener;
@Autowired
StopListener stopListener;
@Override
public void run() {
uiCore = new UICore();
uiCore.initialize();
}
public UICore getUiCore() {
return uiCore;
}
public class UICore {
public void initialize() {
//TODO 窗口
JFrame jFrame = new JFrame("微信模板消息推送辅助工具");
jFrame.setSize(600, 400);
jFrame.setLocationRelativeTo(null);
jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//TODO 数据块
JPanel dataPanel = new JPanel();
dataPanel.setBorder(BorderFactory.createTitledBorder(""));
download = new JButton("模板下载");
download.addActionListener(downloadListener);
start = new JButton("开始发送");
start.addActionListener(startListener);
stop = new JButton("停止发送");
stop.addActionListener(stopListener);
dataPanel.add(download);
dataPanel.add(start);
dataPanel.add(stop);
Box box = Box.createVerticalBox();
Box row1 = Box.createHorizontalBox();
row1.add(new JLabel("token:"));
row1.add(Box.createHorizontalStrut(40)); //创建label和textFied之间的距离
tokenField.setPreferredSize(new Dimension(400, 30));
row1.add(tokenField);
Box row2 = Box.createHorizontalBox();
row2.add(new JLabel("execel地址:"));
row2.add(Box.createHorizontalStrut(8)); //创建label和textFied之间的距离
execelField.setPreferredSize(new Dimension(400, 30));
row2.add(execelField);
Box row3 = Box.createHorizontalBox();
row3.add(new JLabel("json模板:"));
row3.add(Box.createHorizontalStrut(23)); //创建label和textFied之间的距离
jsonField.setPreferredSize(new Dimension(400, 30));
row3.add(jsonField);
Box row4 = Box.createHorizontalBox();
row4.add(new JLabel("线程数:"));
row4.add(Box.createHorizontalStrut(34)); //创建label和textFied之间的距离
threadField.setPreferredSize(new Dimension(400, 30));
row4.add(threadField);
Box row5 = Box.createHorizontalBox();
row5.add(download);
row5.add(Box.createHorizontalStrut(32));//横排间距
row5.add(start);
row5.add(Box.createHorizontalStrut(32));
row5.add(stop);
Box sendBox = Box.createVerticalBox();
sendBox.add(Box.createVerticalStrut(50)); //竖排间距
sendBox.add(row1);
sendBox.add(Box.createVerticalStrut(20));
sendBox.add(row2);
sendBox.add(Box.createVerticalStrut(20));
sendBox.add(row3);
sendBox.add(Box.createVerticalStrut(20));
sendBox.add(row4);
sendBox.add(Box.createVerticalStrut(60));
sendBox.add(row5);
dataPanel.add(sendBox);
box.add(dataPanel);
jFrame.add(box);
jFrame.setResizable(false);
jFrame.setVisible(true);
}
//获取token
public String getToken() {
if (tokenField == null) {
return "";
}
String token = tokenField.getText();
if (StringUtils.isEmpty(token)) {
return "";
}
return token;
}
//获取execel路径
public String getUrl() {
if (execelField == null) {
return "";
}
String url = execelField.getText();
if (StringUtils.isEmpty(url)) {
return "";
}
return url;
}
//获取json模板
public String getJson() {
if (jsonField == null) {
return "";
}
String url = jsonField.getText();
if (StringUtils.isEmpty(url)) {
return "";
}
return url;
}
//获取线程数
public String getThread() {
if (threadField == null) {
return "";
}
String url = threadField.getText();
if (StringUtils.isEmpty(url)) {
return "";
}
return url;
}
}
}
2.java swing下载界面和代码如下
1)界面
2)调起下载界面源码
public class FileChooser {
public static String getPath() {
JFileChooser chooser = new JFileChooser();
/*
* 根据JFileChooser对弹出的文件夹框选择 1、只选择目录JFileChooser.DIRECTORIES_ONLY
* 2、只选择文件JFileChooser.FILES_ONLY
* 3、目录或者文件都可以JFileChooser.FILES_AND_DIRECTORIES
*/
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
// 保存所选目录chooser.showSaveDialog(parent);
Component parent = null;
int returnVal = chooser.showSaveDialog(parent);
// 获得选中的文件对象JFileChooser.APPROVE_OPTION
// 如果保存的目录跟获得选中的文件对象一致,成功都是返回0
String selectPath = "";
if (returnVal == JFileChooser.APPROVE_OPTION) {
// 获得路径
selectPath = chooser.getSelectedFile().getPath();
System.out.println("你选择的目录是:" + selectPath);
}
return selectPath;
}
}
三、地址分享
1.工具地址:
https://download.csdn.net/download/Z_Vivian/12178375
2.源码地址:
https://github.com/ZiXinZhu/wechat_task
四、打包exe文件
通常jar文件直接运行需要在电脑上安装jdk,如果想让工具在没有java运行环境的电脑上运行则需要将其打包成exe文件,如下:
- 具体打包流程请关注我下面这篇博客:
用exe4j将jar包打包成exe文件实现无java环境运行