我目前在用的Scene Builder是Java19版本编译的,但是我使用的jfx是17.0.7版本,所以在使用Scene Builder修改窗体文件时,在IDEA中reload后自动将文件改为Java19版本,同时告警时遇到了一个问题,它一直在覆盖JavaFX版本到15.0.1,而我使用的是11.0.2版本,所以我在运行时会收到以下警告:
WARNING: Loading FXML document with JavaFX API of version 19 by JavaFX runtime of version 17
fxml文件中显示如下:
<Pane maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="293.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1">
具体原因是SceneBuilder将:System.getProperty("javafx.version")
作为其名称空间的检查。要设置成自己的jfx版本可以修改以下配置。
修改Sence Builder的配置文件:
C:\ProgramFiles\SceneBuilder\app\SceneBuilder.cfg
在在JavaOptions配置项配置为null:
java-options=-Djavafx.version=null
如果设置为NULL,即使您使用其他版本的JavaFX在SceneBuilder中打开FXML文件,它也不会检查版本或发出警告。