我与JFX不得不说的事故现场
创始人
2024-06-03 16:39:29

最近有小伙伴使用JFX搭建 简易版的桌面GUI程序

刚好项目基于JDK11,那么首先我们就必须准备好JFX模块

JFX简介

Oracle 近日在其官方博客宣布,从 JDK 11 开始,JavaFX 将作为独立模块从 JDK 中分离出来,以使 JavaFX 更易于被采用。该调整将降低新贡献者参与 OpenJFX 开源社区的门槛。

JavaFX 于 JavaOne 2007 大会上首次对外公布,并被迅速拿来与 Adobe Flex 和 Microsoft Silverlight 做比较。该技术于 2011 年完全开源,并在一年后成为 Oracle JDK 的一部分。

Oracle 解释称,随着 Java SE 9 模块系统的出现,是时候将 JavaFX 与 JDK 分离开来,以便让 JavaFX 可以单独下载使用。这将使使用 JavaFX 框架的开发人员获得更多的自由度和灵活性。而且,随着 JDK 开发团队的工作重点主要放在其快速版本迭代上,JavaFX 需要除 Oracle 之外,更多其他 OpenJFX 社区的贡献力量驱动。

下载方案

1、openjfx官网下载

在这里插入图片描述

2、选择对应系统、JDK一致的版本

在这里插入图片描述

3、整体结构和内容

在这里插入图片描述

事故现场

事故1

直接从官网下载JFX后 ,直接把 lib中的依赖利用 Build Path记载到项目中

在这里插入图片描述
此时发现项目上有红色感叹号

Description	Resource Path	Location	Type
Archive for required library: 'lib/javafx.properties' in project 'JFXTest' 
cannot be read or is not a valid ZIP file JFXTest Build path Build Path ProblemThe project cannot be built until build path errors are resolved

事故原因

不小心把javafx.properties配置文件给当成jar包加载到项目中,导致无法识别 ZIP文件

移除该文件就行 如下图

在这里插入图片描述
运行代码

public class AppLauncher {public static void main(String[] args) {Application.launch(MediaDemo.class, args);}
}

事故现场2

异常代码

Graphics Device initialization failed for :  d3d, sw
Error initializing QuantumRenderer: no suitable pipeline found
java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline foundat com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:280)at com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:222)at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:260)at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:267)at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:158)at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:658)at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:678)at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline foundat com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:94)at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)... 1 more
Exception in thread "main" java.lang.RuntimeException: No toolkit foundat com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:272)at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:267)at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:158)at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:658)at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:678)at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)at java.base/java.lang.Thread.run(Thread.java:833)

图形设备初始化失败:d3d,sw
初始化QuantumRenderer时出错:找不到合适的管道

原因

怀疑无法同SWT直接 Build Path 相关jar包后生效


把JFX相关依赖打包成常用的自定义用户依赖 如同 平时加载的 **JRE System Library [jre]**一样

1、右键项目 选择 Build Path 点击 配置中心 Configure …

在这里插入图片描述

2、基于Classpath的位置 添加 User Library

在这里插入图片描述
3、自定义一个名字描述制作的依赖包

在这里插入图片描述

4、添加想要扩展的j Jars…

找到官网下载的JFXlib目录 选中所有的文件

在这里插入图片描述

5、打包完成

在这里插入图片描述

6、自定义的JFX11完成

在这里插入图片描述

7、项目配置JFX11

在这里插入图片描述
在这里插入图片描述

8、测试运行效果

在这里插入图片描述

可以正常播放歌曲 并 显示视频哦!

相关内容

热门资讯

脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...