问题标签 [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.

0 投票
0 回答
570 浏览

javafx - Java 9 上的 modena.css 资源加载失败

即使使用 JVM 参数也返回null

0 投票
0 回答
149 浏览

java - 在 java 9 上执行 jnlp 文件时出现 NullPointerException

运行我的 jnlp 应用程序后,我(无休止地)收到以下异常。我正在使用 java 9 早期访问版本。它正在处理 java-8,所以我认为这是关于 9 的更改。我在 java-9 问题中找不到任何内容。关于原因的任何想法?

编辑:它完美地在 java-8 上运行。所以问题应该是关于 java-9 的变化。

0 投票
1 回答
9259 浏览

java - Java 9 中找不到模块 javafx.controls

我在两个文件中有两个 JPMS 模块:modulea.jarmoduleb.jar. Modulea 需要javafx.controls模块。我需要在新层中使用这些模块,所以我这样做:

我以为JDK模块会自动加载,但我明白了

同时当我做: 时java --list-modules,输出是:

如何解决?

0 投票
2 回答
1221 浏览

javafx - 如何在不使用 showAndWait 的情况下等待 JavaFX 应用程序线程上的用户输入?

我想暂停 JavaFX 应用程序线程上方法的执行,并等到用户与 UI 进行交互。重要的是不要冻结 UI。

例子:

我应该如何实现pause()resume()方法?
事件处理程序的执行应在pause();调用时等待,直到用户按下resume按钮并resume调用该方法。

0 投票
1 回答
1595 浏览

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

0 投票
2 回答
717 浏览

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):

0 投票
0 回答
225 浏览

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,你做了什么决定或者你找到了什么解决方案。

0 投票
1 回答
3051 浏览

java - 如何在 JavaFX 9 的 TableView 中查找可见行的索引

如何获取 JavaFX 9 中 TableView 中可见行的索引?在 JavaFX 8 中,我可以执行以下操作:

在 Java 9 中,作为模块化的一部分,JDK 团队隐藏了不应该公开的 API(例如,所有以“com.sun”开头的包)如果我尝试在 Java 9 中编译它,我会得到错误:

有什么官方方法可以获取 TableView 中的可见行吗?关于另一个更好的解决方法的任何想法?

更新:基于@user4712734 的解决方案的解决方案

TableViewExt 的代码

0 投票
1 回答
3480 浏览

java - JavaFX:更新到 Java 9 后出现奇怪的 ClassNotFoundException

我在 Java 8 中启动了一个 Maven 项目,并想将其迁移到 Java 9。同时我也从 Eclipse Neon EE 转到了 Eclipse Oxygen EE。(重新安装 JFX SDK)。虽然 Eclipse 工作区没有显示错误;一旦我尝试编译和运行在 Java 8 中运行良好的完全相同的程序,我就会得到以下异常:

异常运行应用程序application.Main

我现在已经多次重建该项目,但无法使其正常工作......

0 投票
2 回答
494 浏览

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 的一些更改,但没有看到任何相关的内容。

在此先感谢您的合作。