簡體   English   中英

Java:讀取序列化對象的最佳方法是什么?

[英]Java: What is the best way to read a Serialized object?

如果我重復一個問題,我事先表示歉意。 如果我是,請轉發我到相關職位。

我有一個JPanel,上面有很多組件。 然后將其放置在JFrame上。 我想給用戶一個機會來保存他們當前的會話(即序列化JPanel及其完整的子組件值)。 然后,用戶應該有機會加載上一個會話(基本上是JPanel,其中包含已保存的comboxes和文本字段條目的選擇)。

我的問題與從文件讀取JPanel對象有關。 從文件讀取JPanel后,是否必須閱讀其每個文本字段和組合框,還是可以簡單地將JPanel替換為保存的JPanel? 據我所知,唯一的方法是用保存的面板替換當前面板,如下所示:

  • 1:MyPanel savedPanel =(MyPanel)objectInputStream.readObject();
  • 2:刪除(currentPanel);
  • 3:添加(savedPanel);
  • 4:validate();

這有什么可以實現我想要的嗎?

謝謝。

反序列化將還原已保存的對象圖。 但是請參閱Javadoc:確實不建議序列化Swing對象。 您可能會研究java.beans.XMLEncoder

將數據保存在Swing面板的后面,而不是面板本身。 該面板是演示文稿,而不是用戶數據-您應該能夠僅根據用戶數據來重建面板的狀態。

為此,創建一個為面板的數據模型建模的模型,然后查看XML或JSON序列化器,該序列化器可讓您持久化並檢索該模型的數據。 從模型中填充UI,您就可以從代碼中一個完整的位置開始存儲和刷新屏幕。

暫無
暫無

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

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