专栏首页gemronJavaFX 11发行说明

JavaFX 11发行说明

介绍

以下记录描述了有关此版本的重要更改和信息。在某些情况下,该说明提供了有关问题或更改的其他详细信息的链接。

从JDK 11开始,JavaFX模块与JDK分开提供。这些发行说明涵盖了独立的JavaFX 11发行版。JavaFX 11需要JDK 10(必须是OpenJDK版本)或JDK 11.建议使用JDK 11。

重要变化

运行JavaFX应用程序

既然JDK不再包含JavaFX,则必须明确包含应用程序使用的JavaFX模块。有关说明,请参阅JavaFX 11入门页面。

添加API以自定义Spinner控件的步骤重复计时

在JavaFX 11中修改值步骤之前,必须在Spinner控件箭头按钮上按下鼠标的默认持续时间。已添加两个新属性“initialDelay”和“repeatDelay”来配置此行为。

initialDelay:在下一个值步骤之前必须在箭头按钮上按下鼠标的持续时间。默认值现在为300毫秒。

repeatDelay:在第一个值步骤之后,每个连续步骤必须按下鼠标的持续时间。默认值现在为60毫秒。

有关更多信息,请参阅JDK-8167096

默认情况下,独立的javafx模块不再具有权限

javafx.* 模块现在由应用程序类加载器加载,默认情况下不再具有权限。想要在启用安全管理器的情况下运行的应用程序需要使用“-Djava.security.policy”指定自定义策略文件,并为每个 javafx.* 模块授予所有权限。有关更多信息,请参阅JDK-8210617

将默认GTK版本切换为3

现在,JavaFX将在存在gtk3库的Linux平台上使用GTK 3。在JavaFX 11之前,GTK 2库是默认的。这与JDK 11中AWT的默认值相匹配。有关更多信息,请参阅JDK-8198654

新功能

以下注释描述了JavaFX 11中的一些增强功能。有关完整列表,请参阅发行说明末尾的表格。

FX Robot API

添加了公共FX Robot API以支持模拟用户交互,例如在键盘上键入键并使用鼠标以及捕获图形信息。有关更多信息,请参阅JDK-8090763

删除了功能和选项

删除对libavcodec 53和55的支持

FX Media对libavcodec 53和55的支持已被删除。默认情况下,这些库不在受支持的Linux平台上,并且不再需要。有关更多信息,请参阅JDK-8194062

已知的问题

JavaFX在Ubuntu 18.04上使用Wayland与OpenJDK 11崩溃

启用XWayland窗口服务器时,JavaFX在Ubuntu 18.04 Linux机器上崩溃。只要FX窗口工具包代码在Linux上使用GTK 3,就会发生这种情况,这是JavaFX 11的默认设置。

建议的解决方法是在运行JavaFX应用程序时使用Xorg服务器而不是Wayland服务器。请注意,JDK 10或JDK 11不支持Wayland。

另一种解决方法是通过在命令行上传递以下系统属性来显式强制GTK 2:

    java -Djdk.gtk.version=2 ...

有关更多信息,请参阅JDK-8210411

使用JDK 10运行时,Swing interop需要合格的导出

要使用带有OpenJDK 10版本的JavaFX 11运行FX / Swing互操作应用程序,必须在java命令行中添加以下四个限定导出。

--add-exports=java.desktop/java.awt.dnd.peer=javafx.swing
--add-exports=java.desktop/sun.awt=javafx.swing
--add-exports=java.desktop/sun.awt.dnd=javafx.swing
--add-exports=java.desktop/sun.swing=javafx.swing

有关更多信息,请参阅JDK-8210615

使用具有独立SDK的安全管理器运行时,Swing interop失败

在启用安全管理器的情况下运行时,FX / Swing互操作应用程序将失败。使用JFXPanel或SwingNode的应用程序必须在未启用安全管理器的情况下运行。有关更多信息,请参阅JDK-8202451

使用jlink创建的最小jdk映像时,Swing interop失败

使用包含JavaFX 11 jmods包中的javafx.swing模块的jlink创建的最小Java映像将无法运行FX / Swing互操作应用程序。例如,如下创建的图像将不起作用:

    jlink --output myjdk --module-path javafx-jmods-11 \
        --add-modules java.desktop,javafx.swing,javafx.controls

javafx.swing模块依赖于JDK 11中新的jdk.unsupported.desktop模块,必须通过该--bind-services选项显式添加或包含该模块。

解决方法:使用以下两种方法之一创建映像:

    jlink --output myjdk --module-path javafx-jmods-11 \
        --add-modules java.desktop,javafx.swing,javafx.controls,jdk.unsupported.desktop

    jlink --output myjdk --bind-services --module-path javafx-jmods-11 \
        --add-modules java.desktop,javafx.swing,javafx.controls

有关更多信息,请参阅JDK-8210759

固定错误列表

发行密钥

概要

子组件

JDK-8203345

启用屏幕阅读器时VirtualFlow中的内存泄漏

无障碍

JDK-8204336

当嵌套事件循环处于活动状态时,Platform.exit()会抛出ISE

应用程序生命周期

JDK-8089454

[HTMLEditor]选择删除CENTER对齐

控制

JDK-8154039

选择TabPane :: getTabs()中未包含的选项卡时内存泄漏

控制

JDK-8157690

[TabPane]排序选项卡使选项卡选择菜单为空

控制

JDK-8165459

HTMLEditor:意外禁用剪贴板工具栏按钮

控制

JDK-8185854

具有自定义外观的TabPane中不可编辑的ComboBox上的NPE

控制

JDK-8187432

ListView:启动时EditEvent的索引不正确

控制

JDK-8192800

表自动调整大小会忽略列调整大小策略

控制

JDK-8193311

[Spin​​ner]在ENTER上未激活默认按钮

控制

JDK-8193495

快速删除和添加操作后,TabPane不会正确更新标题区域中的选项卡位置

控制

JDK-8194913

如果将窗格添加到工具栏,则会破坏焦点遍历

控制

JDK-8196827

test.javafx.scene.control.ComboBoxTest - 生成NullPointerException

控制

JDK-8197846

ComboBox:删除并重新添加后变为无法点击

控制

JDK-8197985

在ListView中按Shift + DOWN会导致抛出异常

控制

JDK-8200285

TabDragPolicy.REORDER阻止显示ContextMenu

控制

JDK-8201285

重复使用具有disable = true的DateCell时,DateCell文本颜色未正确更新

控制

JDK-8208610

在FXMLLoader :: getDefaultClassLoader中调用类的错误检查

FXML

JDK-8129582

在Linux上显示RTL语言文本时,控件显着减慢

图像

JDK-8195801

用MarlinFX中的sun.misc.Unsafe替换jdk.internal.misc.Unsafe

图像

JDK-8195802

消除在javafx.graphics中使用jdk.internal.misc安全实用程序

图像

JDK-8195806

消除javafx.graphics中对sun.font.lookup的依赖

图像

JDK-8195808

消除javafx.graphics中对sun.print的依赖

图像

JDK-8196617

在某些环境中,FX打印测试因NPE而失败

图像

JDK-8198354

[macOS]单词包装标签中显示的损坏的泰语字符

图像

JDK-8201231

WindowStage.setPlatformEnabled中的java.lang.NullPointerException

图像

JDK-8202396

ios native imageloader中的内存泄漏

图像

JDK-8202743

虚线描边随机涂错,可冻结应用

图像

JDK-8203378

如果FX是使用OpenJDK构建的,则JDK构建无法编译javafx.graphics module-info.java

图像

JDK-8203801

PrismLoaderGlue.stg文件中缺少Classpath异常

图像

JDK-8207328

javafx.css.Stylesheet的API文档不准确/错误

图像

JDK-8209191

[macOS]扭曲的复杂文本渲染

图像

JDK-8088722

GSTPlatform无法播放具有多个音轨的MP4文件

媒体

JDK-8191446

[Linux]为openjfx构建构建并提供libav媒体存根

媒体

JDK-8193313

MediaPlayer泄漏本机内存

媒体

JDK-8195803

消除在javafx.media中使用sun.nio.ch.DirectBuffer

媒体

JDK-8198316

在macOS High Sierra 10.13.2上播放m3u8文件时,MediaPlayer崩溃

媒体

JDK-8199008

[macOS,Linux]实例化MediaPlayer导致CPU使用率超过100%

媒体

JDK-8199527

将GStreamer升级到1.14

媒体

JDK-8202393

App Transport Security使用新的编译器使用JDK构建阻止macOS上的http媒体

媒体

JDK-8191661

Win32 HiDPI上的FXCanvas产生错误的结果

其他

JDK-8193910

cssref.html和introduction_to_fxml.html中的版本号是错误的

其他

JDK-8195799

在javafx模块中使用系统记录器而不是平台记录器

其他

JDK-8195800

消除对javafx模块中sun.reflect.misc的依赖

其他

JDK-8195974

将javafx中的java.util.logging替换为System logger

其他

JDK-8196297

删除过时的JFR记录器代码

其他

JDK-8199357

从FX删除对applet和Java Web Start的引用

其他

JDK-8200587

修复FX API文档中的错误

其他

JDK-8202036

更新OpenJFX许可证文件以匹配OpenJDK

其他

JDK-8202357

ModuleHelper.java中版权标头中的额外字符

其他

JDK-8204653

修复FX API文档中的错误

其他

JDK-8204956

修复JDK-8200285后清理空白

其他

JDK-8207794

FXCanvas被重新定义时,FXCanvas不会更新EmbeddedStageInterface的x / y

其他

JDK-8208294

使用jrt协议时,安装本机库失败

其他

JDK-8180151

JavaFX错误地使用具有特定尺寸的两个3D框渲染场景图

场景图

JDK-8192056

从组或容器中删除javafx.scene.shape.Sphere-objects时发生内存泄漏

场景图

JDK-8205008

GeneralTransform3D转换函数与单个Vec3d参数错误结果

场景图

JDK-8207377

使用HiDPI记录Robot :: getPixelColor的行为

场景图

JDK-8201291

单击具有setFocusable(false)的JFXPanel会导致其processMouseEvent方法永远循环

swing

JDK-8088769

HtmlEditor中未显示透明色的Alphachannel

web

JDK-8088925

非透明背景导致NumberFormatException

web

JDK-8089375

当WebWorker文件无法访问时,脚本应该以静默方式失败或发布有意义的异常

web

JDK-8147476

使用MathML标记元素渲染问题

web

JDK-8193368

[OS X]删除冗余文件

web

JDK-8193590

将WebView与Tooltip一起使用时内存泄漏

web

JDK-8194265

使用FileReader读取文件时,Webengine(webkit)崩溃

web

JDK-8194935

Cherry挑选GTK WebKit 2.18.5的变化

web

JDK-8195804

从java.base删除未使用的合格sun.net.www导出到javafx.web

web

JDK-8196011

从JFXPanel应用程序使用WebView时发生间歇性崩溃

web

JDK-8196374

windows x86 webview-icu isAlphaNumericString崩溃

web

JDK-8196677

Cherry挑选GTK WebKit 2.18.6的变化

web

JDK-8196968

在JNIEnv _ :: CallObjectMethod退出时出现一次崩溃

web

JDK-8197987

将libxslt更新为1.1.32版

web

JDK-8199474

更新到WebKit的606.1版本

web

JDK-8200418

“webPage.executeCommand(”“removeFormat”“,null)删除了body元素的样式”

web

JDK-8200629

将SQLite更新到版本3.23.0

web

JDK-8202277

由于依赖于javafx.swing,WebView图像捕获因独立FX而失败

web

JDK-8203698

访问某些网站时,JavaFX WebView崩溃

web

JDK-8204856

在PAGE_REPLACED事件之后,WebEngine文档变为空

web

JDK-8206899

运行'dom / html / level2 / html / AppletsCollection.html'时,DRT会随机崩溃

web

JDK-8206995

删除未使用的WebKit文件

web

JDK-8208114

在Webview中打破了文本内容和URL链接功能的拖放

web

JDK-8208622

使用html表单控件调用print API时出现[WebView] IllegalStateException

web

JDK-8209049

Cherry挑选GTK WebKit 2.20.4更改

web

JDK-8163795

[Windows]在本机GetScreenCapture方法中删除对StretchBlt的调用

窗口的工具包

JDK-8191885

[MacOS] JavaFX主窗口无法在MacOS中从全屏模式返回

窗口的工具包

JDK-8196031

FX Robot mouseMove在Windows 10 1709上使用HiDPI失败

窗口的工具包

JDK-8199614

[macos] ImageCursor.getBestSize()抛出NullPointerException

窗口的工具包

JDK-8204635

[Linux] getMouseX,gtk中的getMouseY GlassRobot.cpp忽略了HiDPI规模

窗口的工具包

JDK-8207372

Robot.mouseWheel在Linux,Mac上没有正确实现

窗口的工具包

增强列表

发行密钥

概要

子组件

JDK-8205919

创建工件和功能以将其上载到Maven Central

构建

JDK-8167096

添加API以自定义Spinner控件的步骤重复计时

控制

JDK-8177380

在ColorPicker调色板中添加标准颜色

控制

JDK-8186187

修改公共API的返回类型StyleConverter.getEnumConverter()

控制

JDK-8204621

将MarlinFX升级到0.9.2

图像

JDK-8090763

FX Robot API

场景图

JDK-8130379

使用getCenter方法增强Bounds类

场景图

JDK-8195811

使用公共API支持FX Swing互操作

swing

JDK-8198654

将FX的默认GTK版本切换为3

窗口的工具包

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • spring data jpa

    … where x.lastname = ?1 and x.firstname = ?2

    gemron的空间
  • Java平台,标准版Oracle JDK 9中的新功能

    Java Platform,Standard Edition 9是一个主要的功能版本。以下总结了Java SE 9和JDK 9的特点和增强功能,Oracle 对...

    gemron的空间
  • dojo toolkit 的query

    gemron的空间
  • compileSdkVersion 'android-24' requires JDK 1.8 or later to compile

    今天,好久没有写Android程序的我突发奇想,想简单写一个每日任务APP。好的!新建工程->写好代码框架->开启模拟器->运行!哎哎哎?!那啥!咋报错了嘞?!...

    代码咖啡
  • 使用 spring-cloud-starter-zuul 报错 :0 can't find referenced pointcut hystrixCommandAnnotationPointcut

    使用 spring-cloud-starter-zuul 报错 :0 can't find referenced pointcut hystrixCommand...

    一个会写诗的程序员
  • Java 发展历程

    1991年4月,由 James Gosling 博士领导的绿色计划(Green Project)开始启动,此计划的目的是开发一种能够在各种消费性电子产品(如机顶...

    JMCui
  • 关于Intellij IDEA导入jdk出现异常

    目前JDK出现的情况如下: ? 这里JavaJDK是有问题的,因为只有jre而没有JDK。正确做法是重新安装新的JDK。 正常的JDK下的目录是这样的: ? 选...

    用户1134788
  • JDK 13 都已经发布了,Java 8 依然是最爱

    在 JDK 版本的世界里,从来都是 Oracle 发他的新版本,我们继续用我们的老版本。三年之前用 JDK 7,后来终于升级到了 JDK 8。自从升级了没多久,...

    古时的风筝
  • Open JDK 和 Oracle JDK,哪个更优秀?

    Open JDK 是 Sun 在 2006 年末把 Java 开源而形成的项目,这里的“开源”是通常意义上的源码开放形式,即源码是可被复用的,例如 IcedTe...

    南风
  • AndroidStudio出现UnsupportedClassVersionError

    Android Studio升级到2.0之后,Build Tool也随着更新了,然后运行了原来的工程后,突然出现了,如下异常

    None_Ling

扫码关注云+社区

领取腾讯云代金券