java - 序列化 JavaFX 组件

标签 java serialization user-interface javafx

我正在尝试在 Java FX 下开发一个小的拖放应用程序。用户会将按钮、菜单、标签等 JFX 组件放置在特定位置。完成后,他将保存此布局,稍后他将重新打开该布局并再次使用它。

重要的是存储所有掉落在某个位置的对象的信息。

为此,我决定使用序列化。但我无法序列化 JavaFX 组件。我尝试序列化 Buttons、Scenes、Stages、JFXPane,但似乎没有任何效果(我获得了 NotSerializableException)。

关于如何保存所有组件然后检索它们有什么建议吗?

P.S.:我试图用 FXML 找出一些方法,但我没有成功。

非常感谢您的回答:)

最佳答案

你是对的,JavaFX(从 2.1 开始)不支持使用 Java 序列化组件 Serializable接口(interface) - 所以你不能使用那个机制。

JavaFX 可以使用 FXMLLoader.load() 从 FXML 文档反序列化方法。

不过,诀窍在于如何将现有组件和状态写入 FXML?

目前,执行 FXML 序列化的平台没有公开任何内容。显然,创建通用场景图 => FXML 序列化程序是一项相当复杂的任务(据我所知,没有公共(public)的第 3 方 API)。迭代场景图并为一组有限的组件和属性写出 FXML 不会太困难。

关于java - 序列化 JavaFX 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11033943/

相关文章:

java - 如何在 dropwizard 中将 yml 文件读入 java hashmap

java - 组成两个着色器(拾色器)

java - 扫雷算法卡住了

java - 在 apache tomcat 中传输 body 之前分析 HTTP-header

php - 编码表单数据的最佳方式是什么?

Java .dat 文件到 Python pickle

java - 带点的属性名称 Jackson JSON 解析

architecture - 如何在不同的分辨率/屏幕上提供相同的应用程序

java - 在 GUI 开发中使用构建器模式时,哪些被认为是实现构建器模式的好例子?

android - 为 Android 应用绘制棋盘(跳棋)