Java Swing实用小工具开发

Java Swing实用桌面小工具开发

——————— 2018.7.11更新 ————————-
步骤8中可能出现的问题,可尝试替换jarbundler为最新版本 jarbundler-2.2.0.jar

——————— 以下为原文内容 ————————-

本文将简述如何用Swing开发简单的桌面小工具。
Java Swing 可以很方便的开发桌面小工具,原理就是用Java运行时调用终端(或cmd)命令。先上个完成后的演示效果:

演示效果
代码详见:https://github.com/Liiking/SwingTest

我的第一个Java Swing项目

下面的步骤将详细说明如何创建一个简单的Java Swing项目,并将其打包成Mac或Windows上的可执行程序。

准备工作

首先你需要一个IDE(博主用的是IDEA,就按这个说吧)。然后需要一个将jar包打成 .app(Mac系统可执行程序) 的 jarbundler.jar ,需要打包成Windows上可执行程序 EXE 的话,需要下载 exe4j 这个工具,网上一搜一大把,这里也提供下 Mac版的 exe4j_macos_5_1.tar 和 Windows版的 exe4j_windows_5_0_1.exe 。想直接看打包的可直接跳到步骤8和9 。需要集成jre的 点击这里下载 jre1.8.0.zip

1.建项目

任意目录下新建一个Java项目,或者直接open一个目录,然后手动添加src并将目录类型改成Resource即可,IDEA就是这么任性。

新建项目的目录结构

2.新建GUI

可视化项目一定要有界面的,直接选中src右键new一个GUI Form,命名为MainGUI,当然你想放进package下也没问题,不过这只是个demo,所以就不分包了。然后会生成两个文件:MainGUI.java和MainGUI.form。

3.布局和逻辑

很明显,MainGUI.java文件里执行逻辑,MainGUI.form里面画页面。随便拖动一个 JLabel 和一个 JButton,我们的demo逻辑是点击button在label上显示Hello World,是的,万年不变的Hello World。添加主程序入口方法,用于创建并展示frame:
    public static void main(String[] args) {
        JFrame frame = new JFrame("SwingTest");
        JPanel rootPane = new MainGUI().panelContent;
        frame.setContentPane(rootPane);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setSize(250, 250);
        frame.setResizable(false);// 设置窗口不可拉伸
        frame.setLocationRelativeTo(rootPane);// 居中
        frame.setVisible(true);
    }

布局和逻辑

4.添加一个运行配置

选择Application和Main Class,点击确定。

运行配置

5.run 运行程序

效果如下:

运行效果图

写到这已经完成了基本的Swing入门。那么如何生成跨平台的jar包呢?

6.将项目打成可执行jar包

可以看到,运行项目后在根目录下生成了out目录,里面是Java文件生成的class文件。可通过菜单-Build-Build Artifact来生成对应的jar包,需要进行一些配置。File-Project Structure-Artifacts-添加-jar-from module 添加一个Artifact配置,选择Main Class 确定应用即可。

配置Artifact

7.Build Artifact

Build-Build Artifact-Build之后,将会在out-artifacts目录下生成指定名称的jar包。在Finder中打开,双击jar包运行,效果一致。

Build Artifact

8.将jar包打成Mac桌面应用程序 (.app)

正式使用是双击jar包来运行还是感觉怪怪的,可通过jarbundle将jar包打成 .app 的Mac可执行程序。首先将 jarbundle.jar 文件放进IDEA的lib下的ant/lib目录下,在项目根目录下新建Ant目录,将7生成的jar包和配置文件build.xml放入Ant目录下,build.xml如下:
   <project name="SwingTest">

    <taskdef name="jarbundler"
             classname="net.sourceforge.jarbundler.JarBundler" classpath="lib/jarbundler.jar"/>

    <target name="bundle">

        <jarbundler dir="release"
                    icon="logo.icns"
                    mainclass="MainGUI"
                    name="SwingTest"
                    jar="SwingTest.jar"/>

    </target>

</project>
在Ant目录下新建一个release目录,用于存放生成的 .app 文件。
从Ant Build中添加一个配置文件,添加从弹出的选择框里选中Ant目录下的build.xml文件。

添加Ant配置文件

添加完成后,双击bundle即可在release目录下生成SwingTest.app文件。
找到应用程序双击即可运行。演示效果如下:

可执行程序演示

可能遇到的问题:生成app文件后双击没反应。
可能的解决方案:首先确定问题出在哪里,打开app包内容,从MacOS目录下找到JavaApplicationStub这个可执行文件,直接拖到终端运行,查看报错信息。如果错误信息类似下面酱紫,那么恭喜你,此坑已被博主踩平了。 52代表Java 8,51代表Java 7。
[JavaAppLauncher Error] CallStaticVoidMethod() threw an exception
Exception in thread "main" java.lang.UnsupportedClassVersionError: MainGUI : Unsupported major.minor version 52.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
来个控制台效果:

错误信息

解决方法很简单,只需要从菜单 File-Project Structure-Modules 中把Language level改成6即可。

错误解决

9.将jar包打成Windows桌面应用程序(.exe)

这里以Mac版的exe4j为例来说明如何将jar包打包成exe,此方法同时将jre打包进来,方便没有安装jdk的用户直接运行项目。首先需要注册下License(或者直接搜,有很多注册码),否则打出的exe会报如下错误:This executable was created with an evaluation version of exe4j

未注册的软件

下面开始打包。先准备好所需文件:新建一个文件夹将开发完成的jar包、jre目录放进去,如果jar包引用了其他文件也一并放入,本Hello World当然是没有的。目录如下:

文件目录

打开exe4j,会发现jar包打成exe统共要10步,不要害怕,下面一步一步说明。先看下打开的页面:

step1

如果已有配置文件,选取后可直接finish,就不用一步一步走啦,当然我们现在没有。点击next,选择project type,很明显,需要选择 “JAR in EXE” mode。

step2

next继续走,填写应用名称和输出目录。

step3

这些步骤都很常规,下面继续。这个页面就很特别了,第4步配置可执行程序的信息,里面还有些小选项。

step4-1

这里勾选 Allow -console parameter,给最终的exe起个名字,如果需要定制Icon可选择对应的Icon图标,这里也省略。然后重点来了,本工具默认打包的exe是32位的,如果需要64位的,需要选step4下面的 32-bit or 64-bit 选项,勾选64位,像下面这样:

step4-2

下一步添加要调用的Java入口类。点击绿色小加号,选择对应jar包和Main Class,同样的步骤添加jar包引用的其他类库。

step5
step5-1
step5-2

如果不需要集成jre环境到此可直接finish生成exe。为保证在无Java环境的机器上正常运行,还有个重要步骤,点击next进入 jre 配置,设置jre的最大和最小版本,然后选中 Search sequence ,默认是去搜索Windows注册表和环境变量中配置的JAVA_HOME、JDK_HOME,这里全删除,点击绿色小加号,选择刚刚新建目录下的jre目录。

step6

注意:这里需要相对目录,否则运行时会找不到。下面直接使用默认配置即可,直接finish(需要定制启动页和提示信息之类可一步一步配置,本demo不做演示),可以看到在输出目录下已经生成了 exe 文件!可以 Save As 将此配置保存。

step7

上个在Windows上运行的效果:

效果演示

至此,一个简单的Java Swing项目已经完成,欢迎大家拍砖吐槽。进阶版demo请移步 https://github.com/Liiking/SwingTest
  • 14
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
Java Swing 文件加密工具是一种可以通过图形界面操作的工具,用于对文件进行加密和解密。它基于Java Swing框架开发,能够在跨平台的Java环境中运行。 该工具的基本功能包括选择要加密/解密的文件、选择加密算法和密钥,以及执行加密/解密操作。用户可以通过界面中的文件选择框选择要处理的文件,并通过选择加密算法和输入密钥来控制加密过程。 在选择加密算法方面,Java Swing 文件加密工具可以支持多种常用的加密算法,例如AES、DES、RSA等。用户可以根据实际需求选择合适的算法进行文件加密操作。同时,该工具还提供了对称密钥和非对称密钥两种方式来进行文件加密。 在加密过程中,该工具会读取用户输入的密钥,并使用选择的加密算法对选择的文件进行加密。加密后的文件会保存在指定的目标位置中,用户可以选择保存路径。 在解密过程中,用户需要选择加密后的文件,并输入正确的密钥,工具会使用相应的解密算法将文件解密,并保存在指定的目标文件夹中。 同时,该工具还提供了一些额外的功能,例如密码强度检测、文件校验等,以增加文件加密的安全性和可靠性。 总之,Java Swing 文件加密工具是一款方便实用工具,可以通过图形界面简单地实现文件加密和解密操作,适用于多种加密算法,并提供了一些额外的功能来增强加密过程的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值