【发布时间】:2015-02-02 02:30:14
【问题描述】:
FXML 性能是 JavaFX 的一个问题,如果您有复杂的屏幕并将它们分成使用 FXML 的小组件(为了可维护性/重用),那么它会变得非常慢。
由于 FXML 解析是在 UI 线程中进行的(不确定这一点,它仍然会阻塞 JavaFX 应用程序线程),因此在处理 FXML 时,您无法在 JavaFX 中显示玻璃窗格/弹出窗口等。
我发现的唯一解决方法是使用 Swing 弹出窗口(就像在 Swing UI 线程中一样,您仍然可以显示一些内容)向用户提供反馈(它正在工作/不是错误/再等等)当 FXML 被加载并在没有更多 FXML 文件被解析时关闭它。
为此,我在 FXMLLoader 上方构建了一个外观。这也适用于 OpenGL 库(例如 LWJGL,而不是 Swing,任何 UI 和不在 JavaFX 应用程序线程中的东西都可以工作)。
我想知道是否存在更好的解决方案(仅限 JavaFX,不混合 UI 框架),因为这会人为地增加项目的复杂性,并且不能很好地与 OpenJFX 端口一起移植。
【问题讨论】:
标签: java javafx javafx-8 fxml fxmlloader