Java开发桌面程序学习(一)——JavaFx+Jfoenix初始以及搭建
Java开发桌面程序学习(一)——JavaFx+Jfoenix初始以及搭建
前言
想做一个Java的桌面程序,但是,使用原生的Swing感觉又十分麻烦,那个布局都是拿代码设置,看着十分的乱,偶然的情况下, 了解到了JavaFx,使用上Jfoenix的UI,界面十分好看,便是想来学一学。
虽然现在大多数桌面程序都是使用微软的.net,使用的是VB,C#。但是,我现在暂时又太想学新知识,懂Java就拿Java做吧。
JavaFx介绍
我们都知道,Java中可以使用swing来写Java程序的界面,不过,那样都是全代码添加的,想要预览效果还得运行,十分的麻烦,JavaFx则是将界面和逻辑都分开处理了,相当于Android开发那样。
Jfoenix
Java的UI控件不是很好看,而Jfoenix则是一位大佬开发的仿谷歌的MD设计的UI控件,是在JavaFx的UI控件基础上改造的,所以我们可以直接拿来用。
环境配置
我这里是使用了IDEA + Maven进行JavaFx程序的开发,Maven的配置看这一篇IDEA Maven配置
首先,使用Maven导入Jfoenix的jar包
在pom.xml
在输入下面代码,如果之前有加过了其他的依赖,则不需要外面的那个dependencies
标签
<dependencies>
<dependency>
<groupId>com.jfoenix</groupId>
<artifactId>jfoenix</artifactId>
<version>8.0.8</version>
</dependency>
</dependencies>
初次之外,还需要下一款软件,javafx_scenebuilder
,相当于预览界面,不过每次预览都得打开软件,感觉还是有些繁琐,并不能像Android那样边改边预览。
不过,JavaFx只有这款软件可以用,既然没办法造工具,那么只好去使用现有的工具吧。
javafx_scenebuilder下载
下载2.0的windows安装文件即可
制作一个HelloWorld程序
1.打开IDEA,新建一个JavaFx项目
2.添加Maven到项目
这里,不知道怎么回事,IDEA还是使用的默认的Maven设置,我们还是得设置一下,不然IDEA又会重新下载一些工具包
3.使用Maven添加Jfoenix
在pom.xml
文件中粘贴上面添加Jfoenix的代码
4.修改布局
打开simple.xml文件,在里面加入一个label标签(也就是swing中显示文字用的控件)
<?import javafx.geometry.Insets?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<GridPane fx:controller="sample.Controller"
xmlns:fx="http://javafx.com/fxml" alignment="center" hgap="10" vgap="10">
<Label text="hello wolrd"/>
</GridPane>
PS:
- 还有,在文件任意一处点击右键,选择open in scenebuilder,之后选择我们安装的exe文件即可
- 之后,该文件的下面就可以切换到Scenebuilder预览界面
scene builder还可以导入我们的Jfoenix的jar包,如图,点击齿轮,之后选择jJfoenix的ar包
5.运行
运行这里会出现异常,界面跑不出来,因为我们使用了Maven,它会把java文件编译成的class文件默认放在一个名为target的文件夹中,然后,那个文件夹没有我们所需要的布局文件,所以就会报错。
解决方法
再次运行,成功!!
相关文章
- [javascript] vuejs的elementui配合iframe实现页面跳转
- [Go] 使用字面值方式初始化map
- [javascript] 基于elementui的后台界面开发
- [linux] linux宝塔面板安装GOFLY开源客服
- [docker] win10 docker桌面版镜像源
- [docker]解决:docker桌面版报错error during connect: This error may indicate that the docker daemon is not running
- [MySQL] 索引优化不只是用于面试
- [正则]正则表达式里面的?: ?! ?= ?<=
- 万字解读鸿蒙轻内核物理内存模块
- 上万规模数据湖如何在实验室测试
- 测试用例又双叒叕失败了,NLP帮你
- 云小课|大数据时代的隐私利器-GaussDB(DWS)数据脱敏
- ReplacingMergeTree:实现Clickhouse数据更新
- 华为云·核心伙伴开发者训练营——产业云专场在东莞松山湖圆满落幕
- 超全整理:程序员都在用什么工具?
- 顶会VLDB‘22论文解读:CAE-ENSEMBLE算法
- 拥抱时序数据库,构筑IoT时代下智慧康养数据存储底座
- CANN5.0黑科技解密 | 别眨眼!缩小隧道,让你的AI模型“身轻如燕”!
- 云小课|三大灵魂拷问GaussDB(DWS)数据落盘安全问题
- MRS HetuEgine的数据虚拟化实践