问题标签 [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 投票
1 回答
982 浏览

java - 如何让我的 javafx 应用程序自动更新?

我目前正在创建一个简单的 javafx 应用程序,并希望制作一个“检查更新”按钮。

当这个按钮被按下时,它会检查任何可用的更新。如果确实找到了,它会提示用户并请求更新自身的权限。

这怎么可能实现?

注意:如果有用的话,我使用的是 Java 9,而不是 8。

0 投票
1 回答
1341 浏览

javafx - 是否可以在 Java FX 中使用单个控制器类和多个实体类添加多个表视图?

我的问题是关于 JavaFX-9。我正在尝试在一个 FXML 控制器类中处理两个表视图。但它给了我一个空指针异常。如何解决这个问题?

第一个 TableView (studentTable) 正在工作,第二个 table(rTable) 不工作。

主页.java:

homeController.java

结果数据.java

学生数据.java

命令行输出:

0 投票
1 回答
760 浏览

java - 如何使用 JavaFX 9(StyleManager 的替代品)为应用程序设置几个默认 CSS 样式表?

谁该死的想法是在没有直接和明确替换的情况下排除 StyleManager - 它破坏了许多程序,正如我所见!

我需要对整个应用程序进行一些重新设计(自定义组件、自定义伪类、自定义平台特定补丁等)。在 JavaFX 8 中,我可以使用:com.sun.javafx.css.StyleManager.getInstance().addUserAgentStylesheet("MyShit.css");

但在 Java 9 StyleManager 中不可用。那么有没有办法为每个场景设置 CSS 呢?

使用“Application.setUserAgentStylesheet”不是一个选项,因为我不想失去默认的外观,我已经调用它来设置 MODENA 样式。我想扩展默认 CSS 而不是替换它。而且我也不想重写整个 MODENA(显然)。

而且我真的不想为应用程序中的每个表单/场景手动设置相同的样式表(或将其添加到每个 FXML 文件中)。有许多形式,动态构造的对话框。主要原因是多个应用程序之间共享了一些部分(和库),所以我不想硬编码任何样式表(对于不同的应用程序可能有不同的名称和路径)。

所以我需要一种方法在程序的一个点为应用程序的每个可能场景设置一个额外的样式表。在 FX9 中可以吗?

PS 我研究了自定义 FXML 加载器、CSS 加载器、场景加载器和其他拦截场景创建的方法 - 没有办法!

0 投票
6 回答
20586 浏览

java - JavaFX 不存在使用 Java 9 和 Intellij Idea

我正在使用 Intellij Idea 编译一个使用 Maven 依赖项的项目,而 Intellij 一直告诉我我的项目有 50 个错误,因为 JavaFX 不存在。

Intellij 没有将我的代码中的所有 javafx 依赖项都突出显示为错误,只是一旦我按下运行并编译程序,JavaFX 中的所有内容都不存在。

我尝试重新下载最新的 JDK (Java 9.0.1) 并没有解决它。我进入了默认项目结构和项目结构,以确保它使用了正确的 jdk 并且没有解决问题。我使用的所有 jdks 似乎都列出了项目中包含的 javafx 包。

这也只是我与朋友一起工作的特定项目的问题。我们可能不得不将所有代码转移到一个新项目中,但是我不确定这是否能解决任何问题。

有什么建议么?

0 投票
2 回答
446 浏览

css - FXML 中的样式表 (JDK 9)

更新到 JDK 9 后不起作用。

原因:java.lang.IllegalArgumentException:无法将 @MainView.css 强制转换为 java.net.URL 类。

你能帮助我吗?

0 投票
3 回答
2604 浏览

java - Java 9 JavaFX 预加载器

在 Java 8 中,我可以使用以下方法启动带有预加载器的 JavaFX 应用程序:

我更喜欢像上面那样从代码启动它,而不是使用部署配置,因为我不希望每次启动应用程序时都启动图形界面,但只有在计算出应用程序应该运行的一些代码之后图形用户界面模式。

我使用的是“com.sun.javafx.application.LauncherImpl”类,但显然在 Java 9 中,所有以“com.sun”开头的类都被删除了。那么,如何在 Java 9 中使用预加载器启动应用程序?

0 投票
0 回答
305 浏览

java - 在 JavaFX 9 中从 CSS 创建 BSS 文件

由于在使用 Dagger 2 时 Eclipse 升级破坏了 Java < 9 中的 APT,我正在将我的项目升级到 Java 9。

我曾经使用以下命令生成二进制 css 文件(bss)(在 Java 9 之前它工作得很好):

但是在升级到 Java 9 后,它会出错:

错误:jfxrt.jar 需要位于 -createbss 和 -createJar 的类路径中,但没有 -nocss2bin

环顾四周,我发现jfxrt.jar我的 JDK 9 安装中不再存在。谷歌搜索发现JavaFX 9 - New and Noteworthy - RainFocus[PDF]其中说:

没有更多的 jfxrt.jar,它被烘焙到 JVM 映像中

有没有人升级到Java 9后能够生成bss文件?

0 投票
1 回答
1749 浏览

java - 获取 JavaFX 场景图上的所有阶段

我有一个重新加载 CSS 的实用程序类。为了获得我正在使用的场景图上的所有阶段


--add-exports在 Java 9 中,如果不在编译期间指定,就无法再访问它。


我正在寻找 StageHelper 的替代方法来获取场景图上的所有阶段。

有一个等效于StageHelper.getStages()in的公共 API Window.getWindows()

但是,这两者之间存在细微差别:

StageHelper.getStages():返回包含此时创建的阶段的 ObservableList

Window.getWindows():返回一个列表,其中包含对当前显示的 JavaFX 窗口的引用。

我从中得到的是,使用 Window 而不是 StageHelper 不会让我看到不可见/隐藏的阶段。

在 Java 8 Window.impl_getWindows() 中返回所有窗口,它没有说明可见性。

所有当前存在的窗口的列表

这随着 Java 9 Window.getWindows() 而改变

当前显示的所有窗口的列表

0 投票
1 回答
854 浏览

java - Java 9 javapacker 在创建 bss 时找不到 jfxrt.jar。似乎在 Linux 下的“createbss”模式下完全崩溃了。如何避免错误?

我有带有 Sun JDE 9.0.1 的 Ubuntu Linux 系统,我需要从控制台将一些 Fx 的 CSS 文件转换为二进制形式。但是当我执行命令时:

我收到一个错误:

错误:jfxrt.jar 需要位于 -createbss 和 -createJar 的类路径中,但没有 -nocss2bin

我的 JDK 已正确安装。我有所有必要的模块(包括 FX)。有什么想法可以避免一个愚蠢的错误并让打包程序来完成它的工作吗?如果我从“/usr/lib/jvm/java-9-oracle/jmods”目录运行 javapackager,它将完成而没有错误。所以现在我正在使用一个丑陋的修复,搜索模块目录,使其成为最新的,从那里运行打包程序。但这该死的丑陋。javapackager 不接受除 outdir、srcdir 和 srcfiles 以外的任何其他参数,因此我无法强制加载或查找 jfx 模块的路径。但是环境变量是否有一些技巧或可以使修复不那么难看的东西?

PS 从 jmod 目录运行或从参数中删除“-srcdir”可消除错误,但打包程序不会生成任何输出文件(即使我使用“-srcfiles”指定输入文件)。似乎 javapackager 在 createbss 模式下完全被破坏了。有人在 Java 9 中使用它吗?

0 投票
2 回答
1208 浏览

javafx - 在 Java 9 中使用 CcontrolsFX 的 SpreadsheetView

我有一个使用 Java 8 和 ControlsFX 8.40.14 编写的应用程序。

我在 Java 9(准确地说是 jdk-9.0.1)下运行应用程序,当应用程序尝试显示 SpreadsheetView 组件时出现以下异常。

当应用程序使用 jdk1.8.144 和 jdk-9.0.1 编译时出现相同的异常

我无法迁移到 ControlsFX 9.0.0,因为它们还不支持 SpreadsheetView

知道如何在 Java 9 中运行这样的应用程序吗?