JFrame的序列化删除JButton的ActionListener-Java

问题描述 投票:0回答:2

我对序列化还比较陌生,所以我创建了一个测试应用程序来处理它。我序列化了一个JFrame,其中添加了3个JComponents:一个JTextArea和两个JButtons。一个按钮保存了JFrame的状态(即序列化),另一个按钮加载了已序列化的JFrame(即反序列化)。

[当我在JTextArea中键入消息时,单击按钮以保存状态,然后从SER文件中加载JFrame,除了按钮没有,我得到了完全相同的对象(键入消息和全部)。工作时间更长。

有人介意解释为什么这样做的行为吗?

P.S。我知道序列化GUI组件通常不是一个好习惯,但这只是出于学习目的。

java serialization user-interface deserialization actionlistener
2个回答
2
投票

[我使正在实现ActionListener的类也实现了Serializable,并立即解决了该问题。


0
投票

是的,肯定会有所帮助,即使实现ActionListener的类实现Serializable。这里的问题是为什么看到组件具有不可序列化的事件侦听器,为什么进程不会引发NotSerializableException,为什么将侦听器简单地从序列化中排除,而不是抛出异常。另外,如果我使用lambda表达式实现ActionListener怎么办?请帮助😭

© www.soinside.com 2019 - 2024. All rights reserved.