我正在尝试在 Java FX 下开发一个小型拖放应用程序。用户将按钮、菜单、标签等 JFX 组件放在某些位置。完成后,他将保存此布局,稍后他将重新打开该布局并再次使用它。
存储掉落到某个位置的所有物体的信息很重要。
我决定为此目的使用序列化。但我无法序列化 JavaFX 组件。我尝试序列化按钮、场景、阶段、JFXPane,但似乎没有任何效果(我获得了 NotSerializedException)。
有什么建议如何保存所有组件然后检索它们?
P.S.:我试图用 FXML 找出一些方法,但没有成功。
非常感谢您的回答:)
你是对的,JavaFX(从 2.1 开始)不支持使用 Java 的组件序列化可串行化 http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html接口 - 所以你不能使用该机制。
JavaFX 可以使用以下方法从 FXML 文档反序列化FXMLLoader.load() http://docs.oracle.com/javafx/2/api/javafx/fxml/FXMLLoader.html#load%28java.net.URL%29 method.
但诀窍是如何将现有组件和状态写入 FXML?
目前,执行 FXML 序列化的平台没有公开任何内容。显然,创建通用场景图 => FXML 序列化器是一项相当复杂的任务(据我所知,没有公共的第 3 方 API)。迭代场景图并为一组有限的组件和属性编写 FXML 并不会太困难。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)