原 荐 JavaFX 11发行说明

栏目: Java · 发布时间: 7年前

内容简介:从JDK 11开始,JavaFX模块与JDK分开提供。这些发行说明涵盖了独立的JavaFX 11发行版。JavaFX 11需要JDK 10(必须是OpenJDK版本)或JDK 11.建议使用JDK 11。既然JDK不再包含JavaFX,则必须明确包含应用程序使用的JavaFX模块。有关说明,请参阅

介绍

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

从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 窗口的工具包

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Growth Hack 這樣做

Growth Hack 這樣做

Xdite / PCuSER電腦人文化 / 2016-5-7 / 300.00台幣

◎具體教你在預算有限的情況之下,把成長做出來的可行與必要方法! ◎帶動台灣成長駭客話題的專業講師,親授讓產品突破80分的成長秘笈 @這本書要給誰看? 1. 創業者、個人品牌經營者,想要提高自己服務轉換率的人。 2. 空有產品,但是賣不出去,花了錢投廣告卻效果低落的人。 @這本書有什麼不一樣? 1.全球最重要的趨勢,台灣最知名的 Growth Hack 講師 Xd......一起来看看 《Growth Hack 這樣做》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具