IDEA 可视化Swing UI 程序开发入门

编程教程 > Java > JAVA UI (83) 2025-07-04 13:52:14

创建maven项目

IDEA 可视化Swing UI 程序开发入门_图示-33722f94bfca4d17958ab86dc0131926.png

添加依赖

方便开发,添加一些开发工具依赖,比如 lombok 

IDEA 可视化Swing UI 程序开发入门_图示-975442e9cd214978bc46e6897e8b5e80.png

 

Swing UI开发

创建Hello UI

在src/main/java/包名下有件菜单,选New->Swing UI Designer ->GUI Form

IDEA 可视化Swing UI 程序开发入门_图示-27b824d2ec2a4efc84026e9b957aad5d.png
IDEA 可视化Swing UI 程序开发入门_图示-1e9148a698ac433b93ef778db7ba6c46.png
UI名称

 

IDEA 可视化Swing UI 程序开发入门_图示-5021fd1d54cb44f39886d0947edfb406.png
UI 可视化设计页面

添加一个JLabel,并编写Hello Swing UI

IDEA 可视化Swing UI 程序开发入门_图示-2f5d1675a5d645a9b8bc6edd7faf17b6.png

 

IDEA 可视化Swing UI 程序开发入门_图示-512350fb8bce404ba37bb1c234810cde.png
设置JLabel 的font属性调整大小
IDEA 可视化Swing UI 程序开发入门_图示-c5d85505bcac4ad88f6d86b66beb35cf.png
设置字体大小

 

完成后查看Hello.java内容为:

package com.xqlee.project;

import javax.swing.*;

public class Hello {
    private JPanel panel1;
}

添加一个@Getter注解方便后续获取内部组件

import lombok.Getter;

import javax.swing.*;

@Getter
public class Hello {
    private JPanel panel1;
}

 

编写App.java 把UI运行起来

 

App.java 内容

import javax.swing.*;

/**
 * Hello world!
 *
 */
public class App {
    public static void main( String[] args ) {
//        System.out.println( "Hello World!" );
        JFrame frame = new JFrame();
        frame.setContentPane(new Hello().getPanel1());
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        frame.pack();//最迷你窗口展示,会导致setSize失效,setBounds失效
    }
}

frame.pack();//最迷你窗口展示,会导致setSize失效,setBounds失效

右键运行:

IDEA 可视化Swing UI 程序开发入门_图示-da540b14cea34cd890b25d4247c29102.png
第一个idea 开发的Swing UI程序

Swing UI IDEA 可视化设计入门完毕。

 

JFrame 居中显示:

 
        //...忽略其他...
        //居中显示
        Toolkit kit = Toolkit.getDefaultToolkit();
        Dimension screenSize = kit.getScreenSize();
        int screenHeight = screenSize.height;
        int screenWidth = screenSize.width;
        int frameWidth = 800;
        int frameHeight = 400;
//        frame.setSize(frameWidth, frameHeight);
        frame.setBounds(screenWidth/2-(frameWidth/2), screenHeight/2-(frameHeight/2), frameWidth, frameHeight);
        //...忽略其他...

 

构建

上面的基础运行是没啥问题,但是直接打包后运行打包文件可能出现空指针。原因是GUI Form依赖idea的相关类,但是在build的时候,并没有生成相关代码。

Gui Designer 修改生成模式

CTRL+ALT+S 打开IDEA的设置,搜索GUI Designer 可以看到下图

IDEA 可视化Swing UI 程序开发入门_图示-1a6a67ee07e040fe8e48160e6ba3ea59.png

修改为:

IDEA 可视化Swing UI 程序开发入门_图示-b552e92e573140449637c4e10247a9a7.png

两种输出方式,

第一种是编译成运行时的class文件,自己写的代码构建成class文件与IDEA之间的关联被忽略了,也就是说是由IDEA自己维护的;

第二种情况是将依赖的IDEA的相关类直接在build的时候生成到源码中。

默认第一种,修改成第二种。

idea构建项目

IDEA 可视化Swing UI 程序开发入门_图示-5e23b57b2b9a48b3a91f4dce42b57848.png

特别注意:idea构建是菜单里面的Build里面的Build Project  不是maven的package或者compile

构建后会在form关联的Java类生成一些代码,参考如下

IDEA 可视化Swing UI 程序开发入门_图示-11991ba29d814dd1a37404a9fd7ddd66.png

 

Maven添加依赖【可选】

如果用了idea的layout

IDEA 可视化Swing UI 程序开发入门_图示-5f0d06794f7746faa9be6155333e75d3.png

用了就要添加下面的依赖:

    <dependency>
      <groupId>com.github.adedayo.intellij.sdk</groupId>
      <artifactId>forms_rt</artifactId>
      <version>142.1</version>
    </dependency>

打包为可执行程序

在maven配置文件的build>plugins下添加一个插件依赖


	<plugin>
		<groupId>io.github.janix520</groupId>
		<artifactId>maven-easypackage-plugin</artifactId>
		<version>1.4.1</version>
		<executions>
			<execution>
				<phase>package</phase>
				<goals>
					<goal>jpackage</goal>
				</goals>
			</execution>
		</executions>
		<configuration>
			<!-- 是否是最小打包,用于精简虚拟机,有的库依赖老旧的库,解析依赖会出错,true如果打包不成功,就改成false -->
			<minimum>true</minimum>
			<!--应用程序名称-->
			<name>${project.artifactId}</name>
			<!--主运行类-->
			<mainClass>com.secondsearch.SecondSearchApplication</mainClass>
			<!--是否显示控制台-->
			<winConsole>false</winConsole>
			<!--应用程序图标--> 
			<icon>${project.basedir}/src/main/resources/icon/icon.ico</icon>
			<!--可选app-image、exe、msi、rpm、deb、pkg、dmg,msi需要另外一个程序配合,app-image是exe绿色版,exe是安装包,其他自行搜索-->
			<type>app-image</type>
			<appVersion>1.0.0</appVersion>
			<copyright>版权</copyright>
			<vendor>厂商</vendor>
			<description>描述</description>
			
			<!-- 是否递归分析依赖,一般false就可以,改成true,增强打包兼容性,不过打包会变慢,不填此参数,默认false -->
			<!--<recursive>false</recursive>-->
			<!--<jarName>${project.build.finalName}.jar</jarName>-->
			<!--jvm option-->
			<!--<javaOptions>-Dserver.port=8888 -Djava.awt.headless=false</javaOptions>-->
			<!--jar包生成目录,对应上面两个输出的libs-->
			<!--<libs>libs</libs>-->
		</configuration>

	</plugin>

添加后构建项目则是

  • idea build
  • maven package

搞定

插件来源:GitHub - Janix520/EasyPackage: java swing javafx gui package exe dmg maven

提示:该插件需要jdk17支持

 

打包exe msi

 

EasyPackage 集成WiX环境打包(打包简单可控低)

 

打包exe msi 格式需要WiX环境,下载:Release WiX Toolset v3.14.1 · wixtoolset/wix3 · GitHub 【提示:其他高版本不知道怎么玩哈试过失败了。目前只有3.x成功了】

 

点中间的Install

IDEA 可视化Swing UI 程序开发入门_图示-4451dc9e588642df8d01f7abaf3095f4.png

安装成功

IDEA 可视化Swing UI 程序开发入门_图示-b2b4219fa5b74823b649d2117c38aba8.png

再次把类型设置为exe即可编译成功(环境Windows11)

 

app-image配合Inno Setup打包【推荐】

先使用EasyPackage打app-image包(也就是打包城exe的绿化包),再通过Inno Setup工具进行封包。可自定义配置封包界面。

Inno Setup封包

Inno Setup 封包使用教程参考:Inno Setup 封包exe工具安装-XQLEE'Blog

打包为exe运行闪退解决

着重检查你pom.xml里面的javaOptions参数配置,有问题就会出现idea能运行,打包后jar可运行但是exe闪退问题。

 


评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
创建maven项目添加依赖方便开发,添加一些开发工具依赖,比如 lombok Swing UI开发创建Hello UI在src/main/java/包名下有件菜
在Swing中,任何其他组件都必须位于一个顶层容器中。JFrame 窗口和 JPanel 面板是常用的顶层容器,本节详细介绍这两个容器的使用方法。JFrame
BorderLayout 边框布局管理器BorderLayout(边框布局管理器)是 Window、JFrame 和 JDialog 的默认布局管理器。边框布局
效果示例Java Swing JPanel JTextArea 背景图片添加不遮挡上级内容呈现代码示例提示:只挑写了关键部分。不一定能直接运行 ImageIco
X-UI官方库GitHub - vaxilu/x-ui: 支持多协议多用户的 xray 面板(X-UI原始库)GitHub - enwaiax/x-ui:vax
1.使用idea创建JavaFX项目idea创建JavaFX项目创建后运行尝试:运行结果 可以看到目前是能正常运行 Hello Word项目的,这个时候还没有maven支持
idea是继eclipse后又兴起的一款优秀的Java编程IED,本文主要讲解idea如何更换/下载主题1.下载主题在主题网站上IDEA Color Theme
设置好idea的SQL数据库类型,以便于idea工具提供准确的语法提示。该方法也就是解决idea SQL语法提示不准确问题的解决方法。 打开设置菜单File-&gtl;
问题描述idea启动maven的JavaFX项目报错:Exception in Application start method java.lang.reflect.InvocationTarg...
问题描述JavaFX maven项目在idea中启动报错:Exception in thread "WindowsNativeRunloopThread" java.lang.NoSuchMet...
idea 2021.3打开maven项目闪退问题查看idea日志,发现报错:idea闪退日志大概意思就是maven的pom.xml文件里面包含了非法字符:冒号,经查看,项目名称&lt;name&...
创建Copyright Profile打开IDEA设置,依次进入 Editor→Copyright→Copyright Profiles如上图所示,点击Add
idea2018配置Tomcat8热部署完整记录
idea Mybatis generator插件的配置和使用,在eclipse中,我们可以在eclipse的插件市场安装一个Mybatis generator的插件。然后对Mybatis gen...
在IDEA中对如下标签进行修改:File-&gtl;settings-&gtl;Languages & Frameworks-&gtl;JavaScript 中的参数JavaScript lan...