当前位置:   article > 正文

【Java】Java GUI制作Windows桌面程序,利用windowbuilder生成界面,使用exe4j打包成可执行文件,使用Inno Setup打包成安装包,超级详细教程_java开发windows桌面程序

java开发windows桌面程序

目录

1.GUI插件

1.1 下载GUI绘制插件

1.2 eclipse中配置windowbuilder插件

2.绘制GUI界面

2.1 建立一个GUI的项目

3.配置Maven项目

3.1新建一个Maven项目

4.GUI事件监听

4.1 按钮监听事件

4.2复选框状态改变事件

5.程序打包

6.使用exe4j将程序打包成可执行文件

6.1 下载exe4j

7.配置Java环境,使用Inno Setup将程序打包成安装包,任意电脑均可安装使用


1.GUI插件

使用IDEA的朋友们,可能比较头疼了,为什么这里要去下载eclipse的插件,IDEA里面没有吗?其实是有的,但是都是要付费使用的,不得已,我们只有使用eclipse来帮助我们绘制GUI的操作了,GUI界面生成之后,后面的逻辑代码编写,我们还是会在IDEA里面操作。

1.1 下载GUI绘制插件

下载地址:windowbuilder下载

点击link 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

点击下载,从外网下载,速度可能比较慢,建议使用迅雷下载。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

1.2 eclipse中配置windowbuilder插件

eclipse的安装教程我这里就不赘述了。。。。。。

打开eclipse

选择Help -> Install New Software...

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 点击Add -> 选择Archive -> 选中刚刚下载好的压缩包 -> 选择selectAll -> 然后点击Next,直到Finish

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 

2.绘制GUI界面

2.1 建立一个GUI的项目

File -> New -> Project -> WindowBuilder -> SWT Designer -> SWT/JFace Java Project

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_19,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_15,color_FFFFFF,t_70,g_se,x_16

 我这里建了一个取名为test,打开项目在src的包下面新建 -> Other -> WindowBuilder -> Swing Designer -> JFrame 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_15,color_FFFFFF,t_70,g_se,x_16

 我这里取名为MyJFrame,打开之后,可以看到下面的样子

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 注意在代码的下方有一个Design选项,点进去之后,就可以开始图形化编辑GUI界面了

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 这里就可以拖动我们的组件,把界面拖动成你想要的样子了

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 再点击下方的Source选项返回我们的代码界面,其实就可以发现,我们的每次拖动,这个插件都直接给我们生成了代码

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 在代码里面运行一下main方法,就可以看到这个程序在Windows中实际的样子啦!!!

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 接下来,我们就要往里面写一点交互的操作了呦!开始使用我们IDEA来操作了。如果习惯了使用eclipse的同学,可以继续使用eclipse,我比较喜欢使用IDEA。

3.配置Maven项目

这里和大家说一下,我做的这个东西,是我们公司的一个实际的项目,所以内容多了一点,如果大家只是学习,没必要把内容弄的这么满,知道怎么回事就好。

3.1新建一个Maven项目

新建一个maven项目,然后把刚刚的插件为我们生成的内容全部复制过来。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

我这里做了一点小小的封装

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 然后把刚刚插件里面的main方法里面的内容,放到我们Maven项目的主类中来

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

在Maven项目的主类里面启动一下试试,确保运行后也可以看到GUI的界面

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

4.GUI事件监听

如果你这里画了按钮和输入框,就要使用监听,判断什么时候按钮被点击了,获取文本框中的内容等等。

4.1 按钮监听事件

  1. JTextField textField1 = new JTextField();
  2. //按钮对象
  3. JButton button1= new JButton("登陆");
  4. JButton button2= new JButton("重置");
  5. ActionListener aListener = new ActionListener() {
  6. @Override
  7. // 每当点击按钮,单选框会触发该方法
  8. public void actionPerformed(ActionEvent e) {
  9. //多个按钮可以使用下面方法进行判断
  10. //这里的button1和button2 就是按钮的对象
  11. if(e.getSource().equals(button1)){
  12. // 获取textField1中输入的内容
  13. String str = textField1.getText();
  14. System.out.println(str);
  15. }
  16. if(e.getSource.equals(button2)){
  17. // do something
  18. }
  19. }
  20. }

4.2复选框状态改变事件

  1. JCheckBox checkBox = new JCheckBox("这是一个复选框")
  2. ItemListener item = new ItemListener(){
  3. @Override
  4. public void itemStateChanged(ItemEvent e) {
  5. if (e.getSource().equals(checkBox)){
  6. System.out.println("复选框状态改变了!")
  7. }
  8. }
  9. };

如果你们还有一些其他特殊的业务,可以自己查查看Swing的其他事件,这里不做赘述了....

5.程序打包

注意:这里注意一下,我们使用的maven项目,如果你的项目里面引用了第三方的jar包,pom.xml中需要加一个插件 maven-assembly-plugin ,这个插件里面有一个重要的配置项,就是jar-with-dependencies 这个插件的作用是将你项目依赖的第三方的jar里面的内容全部都打到jar包中。没有使用第三方jar的可以忽略。

  1. <build>
  2. <plugins>
  3. <plugin>
  4. <artifactId>maven-assembly-plugin</artifactId>
  5. <configuration>
  6. <descriptorRefs>
  7. <descriptorRef>jar-with-dependencies</descriptorRef>
  8. </descriptorRefs>
  9. <archive>
  10. <manifest>
  11. <mainClass></mainClass>
  12. </manifest>
  13. </archive>
  14. </configuration>
  15. <executions>
  16. <execution>
  17. <id>make-assembly</id>
  18. <phase>package</phase>
  19. <goals>
  20. <goal>single</goal>
  21. </goals>
  22. </execution>
  23. </executions>
  24. </plugin>
  25. </plugins>
  26. </build>

通过Maven将项目打成Jar

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

会有两个Jar,注意jar包的后缀是带jar-with-dependencies的,如果没有使用第三方的jar包,就普通的jar就好

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_13,color_FFFFFF,t_70,g_se,x_16

6.使用exe4j将程序打包成可执行文件

6.1 下载exe4j

下载地址:exe4j下载

6.2 exe4j的使用

我们先在桌面建立一个test文件夹,然后将我们刚刚生成的jar包复制到里面

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 1. 打开exe4j,进入Project t ype,选中'JAR' in 'EXE' mode,点击next

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 2.给你的程序写一个简短的名称,选择一下输出的目录,点击next

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 3. 设置生成的exe的名称,设置图标,选择是否允许运行多个程序

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

4.由于我们的电脑现在都是64位的系统,所以我们需要勾选生成64位的exe

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 5.配置java 运行参数,选中jar包

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_15,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

6.配置主类

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 选择程序中的main方法,点击OK

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_15,color_FFFFFF,t_70,g_se,x_16

 7.设置程序的jre版本,我这里都设置成1.8了,可以按照自己电脑的情况来设置

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

8.配置运行的环境

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 这里找到你电脑中的jre的文件夹,将这个文件夹给复制到我们的test文件夹中

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 在exe4j中点击+号,选中这个jre的文件夹

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 将jre的环境移动到最上面

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 接着一路点击next就可以了,我们发现文件夹中已经帮我们生成了一个exe的程序

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 双击打开,看看效果

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 我这里顺便测试了一下我的mysql的驱动包能不能用,发现一切正常。

这里注意哦,可能有些小伙伴已经迫不及待的把这个exe的程序发给别人看了,但是发过去的exe根本打不开。因为我们GUI项目的运行环境是依赖我们刚刚指定的那个jre的文件夹的,所以我们仅仅是把exe这个文件夹发到一台任意的电脑上,是运行不起来的,因为缺少了运行环境,所以我们需要使用下面这个Inno Setup这个工具,把我们的jre环境和exe程序一起打包,这样,无论发送到哪台电脑上都能直接运行了。

7.配置Java环境,使用Inno Setup将程序打包成安装包,任意电脑均可安装使用

7.1 Inno Setup下载

下载地址:Inno Setup下载地址

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

7.2 Inno Setup的使用

1.打开Inno Setup ,选择使用脚本向导创建一个脚本

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 点击下一步

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 2.填写程序名称,程序版本,点击下一步

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

继续点击下一步

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 3.把我们刚刚的test文件夹添加进来

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 点击下一步

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 继续点击下一步,下面三项内容都是非必填

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 下一步

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 语言可以多选

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 选择输出的目录,填写安装程序的名称,图标可选,密码可选

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 点击下一步

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 点击完成

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 选择现在立即编译

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 编译完成之后,就可以看到我们的安装程序啦,无论把这个程序发给哪个小伙伴,安装之后,都可以使用喽!!!

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 整理不易,如果对你有用的话,希望点赞,评论,收藏+关注哦,我会持续更新Java开发的详细教程的,你的肯定,就是我的动力!

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/729848
推荐阅读
相关标签
  

闽ICP备14008679号