问题标签 [fxmlloader]
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.
java - 从控制器文件调用 FXML 文件
我只是面临一个问题,用 JavaFX 实现一个完整的 MVC 模型。我在带有拆分窗格的 fxml 文件中创建了一个简单的结构。
这个想法是在左侧有一个树形菜单,在左侧有一个 GUI 元素来配置我的 GUI 设置。为了填充右侧,我想在窗格中加载相应的 fxml 文件。通过在树项中实现的 mouseclickevents 触发。
问题是,我不知道必须在 controller.java 文件中使用哪些函数来加载 fxml 文件并使其在拆分窗格的右侧可见。
编辑:
这是我的代码:
这就是 FXML MainFrame:
这就是我要调用的 FXML:
这就是控制器文件,它使用来自第一个 FXML 的操作来调用另一个,目标是在拆分窗格的右侧将其可视化。
我知道它不起作用。错误信息很清楚:
原因:javafx.fxml.LoadException:已指定根值。
但我没有任何线索。建议?
感谢你的回答。我确信它指向正确的方向,但我无法让它运行。
请看一下我的代码。
这就是 FXML MainFrame:
这就是我要调用的 FXML:
这就是控制器文件,它使用来自第一个 FXML 的操作来调用另一个,目标是在拆分窗格的右侧将其可视化。
我知道它不起作用。错误信息很清楚:
原因:javafx.fxml.LoadException:已指定根值。
但我没有任何线索。建议?
java - 当 FXML 解析太慢时,JavaFX 中的繁忙弹出窗口
FXML 性能是 JavaFX 的一个问题,如果您有复杂的屏幕并将它们分成使用 FXML 的小组件(为了可维护性/重用),那么它会变得非常慢。
由于 FXML 解析是在 UI 线程中进行的(不确定这一点,它仍然会阻止 JavaFX 应用程序线程),因此在处理 FXML 时,您无法在 JavaFX 中显示玻璃窗格/弹出窗口等。
我发现的唯一解决方法是在 FXML 为正在加载并在不再解析 FXML 文件时关闭它。
为此,我在 FXMLLoader 上方构建了一个外观。这也适用于 OpenGL 库(例如 LWJGL,而不是 Swing,任何 UI 和不在 JavaFX 应用程序线程中的东西都可以工作)。
我想知道是否存在更好的解决方案(仅限 JavaFX,不混合 UI 框架),因为这人为地增加了项目的复杂性,并且不能很好地与 OpenJFX 端口一起移植。
javafx - 访问父控制器中加载的 FXML 的元素
我目前有以下情况:
我创建了一个由 FXML 控制器备份的 FXML 文件。屏幕由侧边栏和儿童支架组成。当我点击侧边栏中的一个元素时,我会在子文件夹中加载一个额外的 FXML 文件,如下所示:
这工作正常。但是我想在父控制器的控制器中访问加载的 FXML 的一些元素。我只是在加载后初始化了子 FXML 的元素。
我已经看过这个问题:JAVAFX - FXML - Access Loaded FXML Controls from Parent Controller,但是当我这样做时,我仍然得到一个错误:
我已经给出someChildTextField
了一个fx:id
并将它放在初始化的顶部,如下所示:
不过,我得到一个 NullpointerException,所以我认为它仍然找不到控件。
有谁知道如何访问父控制器中加载的 FXML 的元素?
java - JavaFX Web 部署:FXMLLoader NullPointerException
我想尝试 JavaFX 网络浏览器部署,所以我使用 IntelliJ 社区版 14.0.2 JavaFX 应用程序模板开始了一个非常简单的测试项目。这是代码:(没有插件,外部库或Maven)
主.java
Controller.java(附加到 sample.fxml)
sample.fxml(布局文件)
现在,当我将应用程序构建为 JAR 时,它可以毫无问题地运行。但是,当我使用预定义的“JavaFXApp”工件构建它时,它会生成一个 html、一个 jnlp 和一个 jar。当我在我的网络浏览器(Firefox Nightly 64bit)中打开 html 时,它给了我以下错误:
相关的代码行似乎是
然而,当作为单个独立 JAR 构建和打开时,同样的代码行工作得很好!关于为什么会发生错误或如何修复它的任何想法?
java - JavaFX 从不同的类更改窗格颜色
我有个问题。我想从另一个控制器类更改窗格的颜色。我正在使用这段代码:
加载的、控制器和窗格不为空。但是窗格的颜色没有改变,有人可以帮我解决这个问题吗?非常感谢。
[编辑]
[编辑]
[编辑](包括不同项目的所有文件)包javafxapplication16;
FXML 文档控制器。
JavaFXApplication16
FXML
javafx-8 - JavaFX 8 有没有办法从节点获取 FXML 引用?
我试图弄清楚是否有办法获得对给定节点的 FXML 的引用。
例如,我正在动态加载视图 - 假设我在当前控制器中引用了一个窗格:
我想保存打开了哪些视图,以便下次打开窗口时可以重新启动它们。像这样的东西:
我似乎无法找到一种方法来恢复开放的内容......希望有一种方法,而不是在另一个地方手动跟踪。
谢谢。
javafx-8 - 放入包中时无法加载 FXML
我在 JavaFXApplication5 项目中得到了这种类型的文件层次结构。
我已经为所有 fxml 文件制作了另一个包,所以当项目变大时,找到某些文件会更容易。
现在在 JavaFXApplication5 主类中,当应用程序尝试运行时,我确定会导致异常(java.lang.reflect.InvocationTargetException)。
我确定是因为“FXMLNew.fxml”根是错误的。但是我不知道在另一个包中时如何设置它......?
或者也许这些类型的文件应该放在普通文件夹中?
eclipse - JavaFx8 (+Maven):加载 fxml 文件时出错
我正在尝试使用 Maven 编写 JavaFx8 应用程序。我编写了一个简单的应用程序主类和一个 fxml 文件(一个什么都不做的根 fxml 文件)。
当我尝试加载 fxml 根文件时,出现错误“未设置位置”:
我不是 JavaFx8 的新手,我已经遇到过这种错误,但这次我没有发现问题。
我的课程是:App.java
RootLayout.fxml:
我检查了打印出 getClass 输出的类路径(这是拥有类路径的正确方法吗?),为此我在 fxml 文件包中编写了一个“Unused.java”类:
当我运行应用程序时,getClass 输出是:
没用过
未使用的APP
所以在我看来,我给 loader.setLocation 的路径(“view/RootLayout.fxml”)是正确的,不是吗?
我还尝试将根 fxml 文件(重命名为 TestRootLayout)放在主类的包中,我仍然有错误。
任何人都可以看到错误吗?
笔记
我已经编写了 JavaFx 应用程序,但我从来没有使用过 Maven,这个项目的目的是用 Maven 设置一个 JavaFx8 项目。我认为我的问题不是来自 Maven,而是我给你我设置项目的命令,也许有问题:我做了命令:
我修改了 pom.xml 文件:
进而:
并在 Eclipse 中:将 -> 现有项目导入工作区
fxrt.jar 包含在 JRE 系统库中
更新:
为了检查问题是否没有更普遍的原因,我用硬编码元素编写了主类:
它有效,所以我想一切都井井有条。问题仍然存在:为什么 setLocation 不起作用?
更新:
fxml文件的路径肯定有问题。如果我改变:
和:
然后它工作
java - 无法在方法中识别窗格的值
这是在保存向导 FXML 中单击保存按钮时调用的函数。
单击保存按钮时,FXML 会关闭,这会导致我必须在其中隐藏窗格的主屏幕。现在,当我单击保存时,会出现空指针异常。场景构建器中的窗格 ID 是“窗格”。是否有某种方式可以链接主 FXML 和 SAVE 对话 FXML 并且单击保存按钮时我可以获得窗格的引用并且它不显示空值。我尝试使用该标志,但在舞台关闭后,该标志更改为其默认值。此外,如果有人可以建议帮助我在主 FXML 中创建带有 text1 争论的树视图。
java - 舞台可见后无法设置样式
这就是功能。错误在 stage.initStyle(StageStyle.UNDECORATED); 这表示在舞台可见后无法设置样式。你能帮我在哪里我应该在函数中声明它并建议一些需要的代码编辑(如果有的话)。