我正在尝试确定是否可以为Java应用程序的用户界面切换到JavaFX。我的大多数用户将使用Oracle JRE,该产品已集成了JavaFX。但是,有些人正在使用OpenJDK(在Linux上)。这个(旧的)问题表明OpenJDK与JavaFX的处理非常差。根据这个问题,替代的OpenJFX将仅完全集成到版本9中的OpenJDK中。所以我的问题有两个:
OpenJDK中的JavaFX支持是否仍然如此糟糕?
如果是这样,是否有Linux发行版已经提供了OpenJFX软件包,因此用户不必自己构建它?
我正在尝试确定是否可以为Java应用程序的用户界面切换到JavaFX。我的大多数用户将使用Oracle JRE,该产品已集成了JavaFX。但是,有些人正在使用OpenJDK(在Linux上)。这个(旧的)问题表明OpenJDK与JavaFX的处理非常差。根据这个问题,替代的OpenJFX将仅完全集成到版本9中的OpenJDK中。所以我的问题有两个:
OpenJDK中的JavaFX支持是否仍然如此糟糕?
如果是这样,是否有Linux发行版已经已经开发了JDK 11+的WebStart的开源版本,可以从https://openwebstart.com获得。
谁需要创建包含JavaFX的Linux OpenJDK发行版
开发基于OpenJDK(例如Redhat,Ubuntu等)的Linux发行版的程序包的人员要为包含JavaFX的JDK和JRE创建RPM。然后,这些软件发行商需要将生成的软件包放入其标准发行代码存储库(例如fedora / red hat network yum存储库)中。当前尚未完成,但是如果Java 8于2014年3月发布时Java 8 Linux软件包不包含JavaFX,我将感到非常惊讶。
更新,2019年12月:
现在,JavaFX已与大多数二进制JDK和JRE发行版(包括Oracle的发行版)分离,并且可以作为独立SDK,jmod集合或可从中央Maven存储库获得的库依赖项(概述为https://openjfx.io),因此不需要标准的Linux OpenJDK发行版即可包含JavaFX。
如果要使用包含JavaFX的预构建JDK,请考虑为各种平台提供的Liberica JDK发行版。
有关大量应用程序部署的建议
我建议使用Java的独立应用程序部署模式。
此部署模式的说明为:
应用程序安装在本地驱动器上,并使用Java和JavaFX运行时的专用副本作为独立程序运行。可以以与该操作系统的其他本机应用程序相同的方式启动该应用程序,例如使用桌面快捷方式或菜单项。
你可以从Oracle JDK发行版或包含JavaFX的OpenJDK构建中构建独立的应用程序。目前,使用Oracle JDK更容易做到这一点。
由于Java版本与你的应用程序捆绑在一起,因此你不必担心计算机上可能已预安装了哪个Java版本,它具有什么功能以及它是否与你的程序兼容。相反,你可以针对确切的Java运行时版本测试应用程序,并将其与你的应用程序一起分发。部署应用程序的用户体验将与在其计算机上安装本机应用程序(例如,安装了Windows .exe或.msi,OS X .dmg,linux .rpm或.deb)相同。
注意:独立的应用程序功能仅适用于Java 8和9,不适用于Java 10-13。计划通过JEP 343:打包工具 Java 14 再次从OpenJDK发行版提供对此功能的支持。提供了OpenJFX软件包,因此用户不必自己构建它?
问题内容: 我正在尝试确定是否可以为Java应用程序的用户界面切换到JavaFX。我的大多数用户将使用Oracle JRE,该产品已集成了JavaFX。但是,有些人正在使用OpenJDK(在Linux上)。这个(旧的)问题表明OpenJDK与JavaFX的处理非常差。根据这个问题,替代的OpenJFX将仅完全集成到版本9中的OpenJDK中。所以我的问题有两个: OpenJDK中的JavaFX支持
我用JavaFX编写了一个应用程序,我想打开一个端口来连接Arduino: <代码>串行端口=新串行端口(“端口”) 当我打开端口时: port.open端口 我遇到了以下问题(当我注释这行代码时,问题消失了): 它使用JavaFX17和Java17。有人能帮忙吗?
问题内容: 我需要使用javaFX2来执行以下操作: 1-)加载图像并使用imageView显示它。 [好] 2-)右键单击并选择“添加节点”选项,屏幕上将出现一个黑色圆圈,您可以将圆圈拖动到图像的任何位置。 [好] 3-)使用鼠标的滚轮来放大或缩小imageView,在图像上显示“ Zoom Sensation”。 [好] 3.1-) 但是,每次缩放图像时,我都希望圆遵循缩放比例,这意味着它们不
我是JavaFX的新手,我正在尝试将旧的Swing应用程序重构为JavaFX应用程序。 我还使用JPA(带有EclipseLink实现)来保存/检索数据。 所以我定义了一些带注释的POJO。 下面是我的注释POJO: TableViewControl有些问题: null
问题:我混淆了vbox和gridpane。。通常,当您可以使用vbox时,您也可以使用包含1列和n行的gridPane,因此我不确定何时使用每一列和它们之间的差异。 事实: > 我知道网格窗格有n行和n列。 我知道vbox只会垂直列出组件。(n行1列) 困惑:当我想垂直列出40-50个(水平框或其他组件)时,我不知道应该选择哪一个,因为有时我会看到人们将这些组件作为子组件添加到vbox中,而其他人
当我点击按钮时,它打印出我的窗格的场景,就像它应该有的那样。但后来,我意识到我的窗格现在捕捉KeyEvents。除了使用Fxml添加一个按钮外,我什么也没做,现在窗格捕捉KeyEvents?当我注释掉按钮的代码时,窗格不再捕捉KeyEvents 这是按钮的所有代码。 注意:我还尝试了和,但也不起作用。但是添加一个按钮突然就能工作了?我好困惑。 整个代码: 未注释按钮使窗格获得焦点,反之亦然。