网站首页 > 教程分享 正文
JavaFX开发环境搭建
0.前提条件:
- 安装了JDK,并添配置PATH环境变量
- 安装了maven
- 安装了IDEA
这里使用jdk19 + maven3.8.2 + idea。
1.使用idea创建maven项目
2.修改pom.xm,添加maven-compiler-plugin,以及javafx相关依赖
HelloWorld示例代码编写
0.创建类HelloWorld,继承Application,重写其start方法
每个JavaFX应用,都派生自Application。start方法是JavaFX应用的入口
1.在start方法中,编写以下代码
其中,涉及到JavaFX中关键的几个概念:
- Stage,翻译为中文是舞台的意思,表示一个窗口。start方法中的stage参数,是由JavaFX自动创建并传递的。也可以手动new多个Stage,然后调用其show方法显示出来
- Scene,翻译为中文是场景的意思,是JavaFX中一切容器组件的载体,容器组件只有在添加到Scene中后,才能进行显示。而Scene必须添加到Stage中,同一时刻,一个Stage中只能设置一个Scene,可以在应用运行的过程中设置为其它的Scene,已实现页面切换(不推荐,比较耗费性能,推荐的做法是设置Scene的root属性)
上面的代码中:
- 创建了一个Label组件,一个StackPane容器,然后将Label添加到StackPane容器中;
- 创建了一个Scene,其root设置为StackPane容器,并设置了其宽高尺寸;
- 将Scene设置为Stage要展示的内容;
- 最后,调用Stage的show方法,显示界面
2.运行HelloWorld
如果在此时直接运行HelloWorld,将会报错:
这是因为JDK9+之后,JavaFX是以模块的方式引入的。所以,我们的项目,也需要启用模块系统。在与顶层包同级的目录,创建 module-info.java 文件,内容如下:
再次运行代码,将看到如下界面:
3.补充
细心的同学会发现,上面的HelloWorld示例中,并没有main方法,可能会疑惑,它是怎么启动的?实际上,JavaFX应用中,main方法不是必须的,在JavaFX打包工具创建的jar文件中,自动嵌入了JavaFX启动器。当然,推荐的做法是提供一个main方法,手动调用Application的launch方法启动应用
另外,因为有一些第三方库没有启用模块系统,会导致在打包JavaFX应用的时候出现错误,解决起来比较麻烦。简单的解决办法是,我们也不启用模块系统,将module-info.java文件删除,另外再新建一个类,这里叫做Launcher,作为程序入口,专门用来启动JavaFX应用:
猜你喜欢
- 2024-09-29 JavaFX-实现画圆弧(java 画圆)
- 2024-09-29 JavaFX文件选择器(java 文件选择器)
- 2024-09-29 JavaFx 实现按钮防抖和软件重启(Kotlin)
- 2024-09-29 JavaFX学习笔记017(单选按钮和复选框)
- 2024-09-29 JavaFX 折线图(java swing 折线图)
- 2024-09-29 JavaFX学习笔记014(菜单栏)(javafx包含功能)
- 2024-09-29 JavaFX 文本字段(javafx 文本编辑器)
- 2024-09-29 还有用Eclipse的吗?这有一个图形编辑框架,据说很厉害!
- 2024-09-29 JavaFX学习入门篇,想用Java写窗口应用的同学可以看看
- 2024-09-29 JavaFX 滑块(javafx scrollpane)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- css导航条 (66)
- sqlinsert (63)
- js提交表单 (60)
- param (62)
- parentelement (65)
- jquery分享 (62)
- check约束 (64)
- curl_init (68)
- sql if语句 (69)
- import (66)
- chmod文件夹 (71)
- clearinterval (71)
- pythonrange (62)
- 数组长度 (61)
- javafx (59)
- 全局消息钩子 (64)
- sort排序 (62)
- jdbc (69)
- php网页源码 (59)
- assert h (69)
- httpclientjar (60)
- postgresql conf (59)
- winform开发 (59)
- mysql数字类型 (71)
- drawimage (61)
本文暂时没有评论,来添加一个吧(●'◡'●)