我最近開始使用Java進行開發,並且非常喜歡這種體驗。默認的Java包裝載了有用的東西,並且使用Swing包對創建GUI有很大的幫助。我決定爲我的LayoutManager使用SpringLayout,因爲它非常簡單並且非常靈活,但是現在我正在發現自己陷入了一片爛泥。使用SpringLayout序列化類(Java)
我希望能夠堅持我的申請狀態。我開始通過使用Preferences API來解決這個問題,但只允許存儲Java本地文件(可以理解 - 它的目標是輕量級的)。我繼續前進,並且通過持久化包含數據的XML字符串來混合使用首選項。過了一會兒,我決定四處看看,看看有沒有更好的,然後我開始閱讀關於可序列化的內容 - 看起來像我找到了我的答案。
但是,當我嘗試序列化一個具有一些由SpringLayout管理的GUI組件的類時,我遇到了一個障礙,而這些組件是由我來查找的,並未實現可序列化。我想我已經找到了關於transient
關鍵字的問題,但SpringLayout的唯一允許修飾符是final
。我所看到的唯一解決方法是更改我使用的是哪個LayoutManager ......我不想創建一些相當定製的GUI。
任何想法?
在此先感謝您的回覆。
-M
嗯......我發現我的問題 - 我試圖將SpringLayout的本地實例聲明爲「transient」,而不是實際的類變量......呃。但是,爲什麼要堅持一個實現'Serializable'的佈局管理器是一個壞主意? – MandM 2012-08-09 15:26:19
大多數佈局管理器沒有需要序列化的狀態。對於我而言,序列化應該以底層數據爲目標,並且應該從程序的每個調用開始構建所有UI。 – mercutio 2012-08-09 19:41:57
瞭解。我有一些複選框的選中/未選中的狀態我想保留,所以我會堅持這些狀態,並且在UI的構建之後,我可以簡單地設置這些狀態。 – MandM 2012-08-13 17:08:06