问题标签 [javafx-9]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javafx - Java 9 上的 modena.css 资源加载失败
即使使用 JVM 参数也返回null
java - 在 java 9 上执行 jnlp 文件时出现 NullPointerException
运行我的 jnlp 应用程序后,我(无休止地)收到以下异常。我正在使用 java 9 早期访问版本。它正在处理 java-8,所以我认为这是关于 9 的更改。我在 java-9 问题中找不到任何内容。关于原因的任何想法?
编辑:它完美地在 java-8 上运行。所以问题应该是关于 java-9 的变化。
java - Java 9 中找不到模块 javafx.controls
我在两个文件中有两个 JPMS 模块:modulea.jar
和moduleb.jar
. Modulea 需要javafx.controls
模块。我需要在新层中使用这些模块,所以我这样做:
我以为JDK模块会自动加载,但我明白了
同时当我做: 时java --list-modules
,输出是:
如何解决?
javafx - 如何在不使用 showAndWait 的情况下等待 JavaFX 应用程序线程上的用户输入?
我想暂停 JavaFX 应用程序线程上方法的执行,并等到用户与 UI 进行交互。重要的是不要冻结 UI。
例子:
我应该如何实现pause()
和resume()
方法?
事件处理程序的执行应在pause();
调用时等待,直到用户按下resume
按钮并resume
调用该方法。
java - Java 9 gradle 找不到 javafx 模块
我正在尝试在带有 gradle 4.2 的 debian 系统上使用 GA Jdk 9 编译 java 9 模块库。为此,我只是这样做是为了用模块路径替换我的类路径:
我在类路径中有我所有的依赖库,它们进入模块路径并且工作正常,当我尝试编译时它确实找到了我自己的所有库。
现在的问题是该项目还使用了 javafx。在 Java 8 中,jfxrt.jar 包含在 jdk 中,据我所知位于默认的类路径中。对于 Java 9 i red,它现在也被模块化和包含在内。
但是当我尝试编译模块时,编译器告诉我他找不到 javafx 模块:
在 Windows 上,它可以正常工作,而模块路径中没有 javafx 蜜蜂
Jdk 包括 javafx:http ://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html
java - 如何从 Java 9 中的另一个模块添加到 JavaFX 场景样式表?
我有两个 JPMS 模块:
- 模块-a
- 模块-b
在 module-a 我有类似的东西:
在 module-b 中,我有想要添加到的 CSS 文件MyApplication
。如何在 module-b 的代码中做到这一点?我不明白如何从另一个模块传递路径。
我的意思是在模块 b 中:
编辑
在 OSGi 中,我使用了以下解决方案bundle-b
(假设 module-a 是 bundle-a,module-b 是 bundle-b):
java - JavaFX 9 -JEP 253 皮肤 API 和几个问题
随着 Java JDK 9 的发布,如 JEP 253 所述,与控件的 JavaFX 皮肤相关的类从私有包com.sun.javafx.scene.control.skin
移至公共包javafx.scene.control.skin
。
这种变化的原因是开发人员习惯于对他们的自定义控件进行编程,尽管 Oracle 不鼓励这种做法,将私有包的皮肤子类化。因此,通过将这些类移动到公共包中,Java 现在提供了一个公共 API 来为自定义控件设置外观。
但是,事情并没有那么简单。我发现了几个我希望有人可以证明的问题。
第一个问题是,虽然现在有公共包javafx.scene.control.skin
,但没有公共 API 可以修改或自定义皮肤。创建一个简单的按钮很简单(通过抽象类的子类化也很简单SkinBase
)但是自定义一个ColorPicker
或一个TextField
或更复杂的控件非常令人沮丧。问题是我们开发人员无法访问组成复杂复合控件的更简单的组件。加上新模块系统的引入,反射很难使用,这意味着除了一个简单的自定义按钮或另一个简单的控件之外,使用 Skin API 非常非常困难。
我发现的第二个问题是ComboBoxPopupControl
课堂上的一个错误。我想创建 a 的自定义版本,ColorPicker
所以我创建了一个扩展ColorPickerSkin
. 正如刚才所说,我发现使用这个类非常困难,所以我让我的类扩展ComboBoxPopupControl
(一个直接的子类ColorPickerSkin
),我发现从我的自定义颜色选择器的基础上创建更干净。但是这个类有一个错误,它引发了一个NullPointerException
因为变量,具有包私有可见性,没有初始化。这个变量是 类型ColorPickerBehaviour
的,在 Java 8 中可以通过在构造函数中传递值来初始化它,Java 9 中的构造函数不接受该类型的参数。
我想知道你是否像我一样工作或正在工作,使用 JavaFX 的这个 API,你做了什么决定或者你找到了什么解决方案。
java - 如何在 JavaFX 9 的 TableView 中查找可见行的索引
如何获取 JavaFX 9 中 TableView 中可见行的索引?在 JavaFX 8 中,我可以执行以下操作:
在 Java 9 中,作为模块化的一部分,JDK 团队隐藏了不应该公开的 API(例如,所有以“com.sun”开头的包)如果我尝试在 Java 9 中编译它,我会得到错误:
有什么官方方法可以获取 TableView 中的可见行吗?关于另一个更好的解决方法的任何想法?
更新:基于@user4712734 的解决方案的解决方案
java - JavaFX:更新到 Java 9 后出现奇怪的 ClassNotFoundException
我在 Java 8 中启动了一个 Maven 项目,并想将其迁移到 Java 9。同时我也从 Eclipse Neon EE 转到了 Eclipse Oxygen EE。(重新安装 JFX SDK)。虽然 Eclipse 工作区没有显示错误;一旦我尝试编译和运行在 Java 8 中运行良好的完全相同的程序,我就会得到以下异常:
异常运行应用程序application.Main
我现在已经多次重建该项目,但无法使其正常工作......
java - JavaFX WebView 不会在 Dialog 上呈现可视内容
以下代码显示了 JDK 9.0.1 (Windows) 中的一个奇怪行为:
对话片段
WebView 实际加载,但它不会将 Web 内容呈现到 GUI。
证明片段
我有以下代码(为简单起见,我对其进行了编辑)
此代码段用于从完全加载的页面打印 cookie。工作人员到达 State.SUCCEEDED 并打印出 cookie,但 WebView 不呈现网页。
工作片段
我尝试了以下代码片段并且它起作用了,WebView 实际上将网页呈现到 GUI:
对话框片段适用于 JDK 8,但不适用于 JDK 9。
并排比较
实际问题
难道我做错了什么?为什么会这样?我阅读了 JDK 9 的一些更改,但没有看到任何相关的内容。
在此先感谢您的合作。