基于Java语言的桌面应用

一、应用介绍

首先给大家展示个截图,它就长这个样:
在这里插入图片描述

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文件,如下:
在这里插入图片描述

发布了62 篇原创文章 · 获赞 23 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Z_Vivian/article/details/104426888
今日推荐