簡體   English   中英

JFrame 的序列化移除了 JButton 的 ActionListener - Java

[英]Serialization of JFrame removes JButton's ActionListener - Java

我對序列化比較陌生,所以我創建了一個測試應用程序來處理它。 我序列化了一個JFrame ,其中添加了 3 個JComponents :一個JTextArea和兩個JButtons 一個按鈕保存JFrame的狀態(即序列化),另一個按鈕加載序列化的 JFrame(即反序列化)。

當我在JTextArea鍵入消息,單擊按鈕以保存狀態,然后從 SER 文件加載JFrame ,我得到了完全相同的對象(鍵入的消息和所有),只是按鈕不再起作用。

有人會介意解釋為什么會這樣嗎?

PS我知道序列化GUI組件通常不是一個好習慣,但這僅用於學習目的。

我讓實現ActionListener的類也實現了Serializable ,這解決了這個問題。

是的,那肯定會有所幫助,即使實現ActionListener的類實現Serializable。 這里的問題是為什么看到組件具有不可序列化的事件偵聽器,進程為什么不引發NotSerializableException,為什么將偵聽器簡單地從序列化中排除,而不是拋出異常? 另外,如果我使用lambda表達式實現ActionListener怎么辦? 請幫忙😭

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM