业务的要求千奇百怪,今天要写个GUI客户端,JAVA是无所不能的
Swing 和 JavaFx
以前学java的时候,用过一点Swing,而JavaFx没有接触过,所以没选。
若两者都没用过,强烈建议使用JavaFx,Swing已经停止更新维护,样式风格像上古的windows 98,JavaFx是08年Oracle推出的新项目,界面趋势基本是Web UI了,是一个新时代。
我使用了美化ui来规避Swing极其丑陋的外观
Springboot项目整合Swing
新建一个Springboot web项目,用来支持后续数据库操作,暴露接口等服务。
新建样式类并继承JFrame
public class SwingArea extends JFrame {
private static SwingArea instance = null;
private JProgressBar progressBar;
private SwingArea() {
}
public static SwingArea getInstance() {
if (null == instance) {
synchronized (SwingArea.class) {
if (null == instance) {
instance = new SwingArea();
}
}
}
return instance;
}
public void initUI() {
}
springboot启动类中启动GUI
public AdcDaApplication() {
SwingArea.getInstance().initUI();
}
public static void main(String[] args) {
ApplicationContext ctx = new SpringApplicationBuilder(AdcDaApplication.class)
.headless(false).run(args);
}
此时启动项目,就会执行initUI()方法来GUI窗口。下面我们将编写具体样式
Swing 使用 beautyeye_lnf.jar 美化
Swing官方样式极丑无比,为了复合目前主流审美,所以使用了美化插件: beautyeye_lnf美化插件
-
下载插件jar到项目目录
-
maven引入本地beautyeye_lnf.jar
<dependency>
<groupId>beautyeye_lnf</groupId>
<artifactId>beautyeye_lnf</artifactId>
<version>3.7</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/beautyeye_lnf.jar</systemPath>
</dependency>
- 配置mavne打包时包含本地jar
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
- 启动类中是样式生效
具体样式,可以翻阅官方文档
public static void main(String[] args) {
try {
org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper.launchBeautyEyeLNF();
BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.translucencyAppleLike;
UIManager.put("RootPane.setupButtonVisible", false);
} catch(Exception e) {
//TODO exception
}
ApplicationContext ctx = new SpringApplicationBuilder(AdcDaApplication.class)
.headless(false).run(args);