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

0 投票
1 回答
1105 浏览

java - 如何在使用 FXML 和 JavaFX 动态创建 TextFlow 时保留换行符

以下代码动态创建一个 TextFlow 和 Text,其中最初包含换行符(可能是图像和其他窗格)。

但是,带有 FXML 的 ByteArrayInputStream 方法会删除所有新行。

尝试同时使用 Windows 和 Unix 行尾字符,但无论如何这都不应该有所作为,但是当您徒劳地尝试不同的组合时,您就会达到这一点。

通常建议使用 BufferedReader来取回新行,但在这里我无法控制。其他加载方法似乎采用 URL 和资源链接,但这是一个操纵字符串。

一个例子

的java代码:

输入Fxml.xml:

0 投票
1 回答
295 浏览

javafx - Java FXML 资源 FXMLDocument.fxml

Clearance.java 和 FXMLDocument.fxml 在同一个包中。

0 投票
4 回答
2573 浏览

inheritance - 如何正确使用 FXML 子类化自定义 JFX 组件?

我想对自定义 JFX 组件进行子类化以更改/扩展它们的行为。作为一个真实的例子,我想扩展一个具有编辑功能的数据查看器组件。

考虑以下非常小的场景。使用该课程Super非常有效。但是当实例化子类Sub(在 FXML 文件中)时,FXMLLoader不再注入该@FXML字段label。因此,调用initialize会导致 aNullPointerException访问具有 value 的字段null。我想FXMLLoader不知何故需要这些信息来初始化使用Super.fxmlSuper的子对象。Sub

请注意,该方法会在注入后initialize自动调用。FXMLLoader

我知道将超级组件嵌套在子组件中应该可以正常工作,但我仍然想知道这是否可以使用继承。

扩大labelto的知名度protected显然并没有解决这个问题。fx:root结合(此处@DefaultProperty已提出此解决方案)定义扩展点均无效。

我很感激任何帮助。

fxml/超级.fxml

超级java

fxml/Sub.fxml

子.java


更新

就像在这个问题中一样,要走的路似乎是FXMLLoader为每个继承级别调用(附加了一个 FXML 文件)。问题归结为注入@FXML-annotated 字段,然后连接到调用initialize。意思是,如果我们希望这些字段被注入,initialize之后会为每个 single 调用load。但是当initialize被每个子类覆盖时,最具体的实现会被调用n次数(n继承级别的数量在哪里)。

就像是

[Update]不会[/Update]解决这个问题,但对我来说似乎是一个 hack。

考虑@mrak 的这个演示代码,它显示了每个继承级别的加载。当我们initialize在两个级别中实现方法时,就会出现上述问题。


这是一个基于mraks 代码的更完整的最小工作示例。

超级java

子.java

超级.fxml

子.fxml

请参阅 中的注释行Super.loadFxml。使用此条件会导致仅注入@FXML叶中的条目。但initialize只被调用一次。不使用此条件会导致(理论上)注入所有@FXML条目。但是initialize在每次加载后NullPointerException发生,因此 s 在每次非叶初始化时发生。

initialize当根本不使用并自己调用一些init函数时,可以解决该问题。但同样,这对我来说似乎很老套。

0 投票
0 回答
43 浏览

javafx - 无法将数据发送到 fxml 文档

我正在尝试向 viewAdController 发送广告。系统输出正确打印广告的信息,这意味着它不为空。我在这一行得到一个 NullPointerException:

这是其余的代码:

viewAdController 中的 setAd 方法如下所示:

这已经工作了很长时间,现在突然不行了,我不确定发生了什么变化。任何帮助表示赞赏。

例外情况:

0 投票
0 回答
48 浏览

java - JavaFX:FXML 项目为空

当我在服务器添加客户端时尝试更新我的 JavaFX 应用程序时,当我使用我的更新功能时,我会收到我的 FXML 列表视图的空指针。任何线索为什么它会在我的初始化和事件中起作用,但在我的更新方法中不起作用

FXML控制器

我的主应用

场景.fxml

服务器类:

那么有没有人可以解决我的问题?

亲切的问候

0 投票
1 回答
332 浏览

javafx - FXMLLoader 模板标志

看着FXMLLoader#load,提到了一个“模板标志”——但我看不到如何设置这个标志的解释。大概应该有一个FXMLLoader#setTemplate,但链接的JavaDoc中不存在这样的方法,并且使用最新的1.8 OpenJDK(build 1.8.0_72-internal-b05)我也看不到这样的方法。

那么这个标志是什么,我该如何设置呢?

0 投票
1 回答
2936 浏览

java - Eclipse - JavaFX FXML LoadException

I'm very, VERY new to using JavaFX and FXML in general, and I've run into a bit of a problem that I've not been able to solve either through repeated Google searches, or searches here on Stack Exchange. While others have had similar problems, I haven't been able to replicate their solutions within my own project.

Right now, I'm mostly just trying to test JavaFX with FXML and get a feel for it... however I can't even get it to load, as FXMLLoader is giving me the following error.

javafx.fxml.LoadException: /C:/Users/Dylon/workspace/Convergence_titanExplorationModule/bin/com/test/fxml/ExplorationModuleUI.fxml

at javafx.fxml.FXMLLoader.constructLoadException(Unknown Source) at javafx.fxml.FXMLLoader.importClass(Unknown Source) at javafx.fxml.FXMLLoader.processImport(Unknown Source) at javafx.fxml.FXMLLoader.processProcessingInstruction(Unknown Source) at javafx.fxml.FXMLLoader.loadImpl(Unknown Source) at javafx.fxml.FXMLLoader.loadImpl(Unknown Source) at javafx.fxml.FXMLLoader.loadImpl(Unknown Source) at javafx.fxml.FXMLLoader.loadImpl(Unknown Source) at javafx.fxml.FXMLLoader.loadImpl(Unknown Source) at javafx.fxml.FXMLLoader.loadImpl(Unknown Source) at javafx.fxml.FXMLLoader.loadImpl(Unknown Source) at javafx.fxml.FXMLLoader.load(Unknown Source) at com.test.fxml.Main.start(Main.java:14) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$163(Unknown Source) at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$176(Unknown Source) at com.sun.javafx.application.PlatformImpl.lambda$null$174(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.application.PlatformImpl.lambda$runLater$175(Unknown Source) at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.lambda$null$149(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.ClassNotFoundException at javafx.fxml.FXMLLoader.loadType(Unknown Source) ... 21 more

Now, here's the code I'm working with...

Here's my FXML file, named ExplorationModuleUI.fxml...

Finally, here's how I have things laid out in regards to folders.

I can't post images yet so here's a link to one instead

Any help is greatly appreciated. I honestly haven't been able to figure out why it doesn't work even after digging about for a couple of hours tonight. I've tried other solutions I've found on here and in Google searches, but nothing has worked yet. If you have any questions feel free to ask and I'll get back to you as soon as I can in the morning.

0 投票
1 回答
94 浏览

eclipse - “位置是必填项。” Eclipse 和其他 IDE 中的异常 FXML

我想和你分享这个小技巧,因为一开始这对我来说是一个很大的痛苦。

在您的代码中添加一个应该加载新文件的新 FXMLLoader 时,如果您使用外部应用程序(例如 SceneBuilder)创建了该 FXML 文件,它一开始就不起作用。

0 投票
0 回答
223 浏览

javafx - JafaFx 加载 FXML 文件错误空指针异常

当我尝试从按钮登录加载窗口时,我有这个异常,没有错误的定义。在它工作正常之前,但现在我不知道为什么它会出现这个错误 java.lang.NullPointerException,控制台中只有这一行,所以我找不到什么问题。听到我的文件。

对于在名为 MainController 的类中午餐视图的函数

关于名为 MainEntreController 的 Splitpane 视图类的控制器,当我单击 logni 时,它向我显示了这个 Eception java.lang.NullPointerException

0 投票
3 回答
3827 浏览

javafx - 加载 fxml 作为后台进程 - Javafx

我最初的 fxml(say home.fxml) 有很多功能,因此需要很长时间才能完全加载。因此,为了避免程序启动和 fxml 加载之间的时间间隔,我引入了一个loader.fxml带有 gif 图像的 fxml(比如),该图像应该在主 fxml 加载时出现。问题是我的 loader.fxml 中的 gif 图像没有移动,因为程序挂起,直到 home.fxml 完全加载。为了避免这种情况,我将 home.fxml 加载移动到一个线程中,如下面的代码所示。

但是在这段代码之后,我的程序也挂了(gif 图像没有移动)。如果我在外部加载 fxml Platform.runLater(),我会得到异常Not on FX Thread

我也厌倦了使用Task(),但是如果我尝试在外部加载 fxml,则 gif 图像正在移动但 fxml 没有在后台加载Platform.runLater()

谁能帮助我并告诉我如何更正代码,以便我的 fxml 在后台加载而不会干扰前台进程。