2011-02-14 38 views
1

在Java GUI代碼中,我使用了一個名爲tabpaneJTabbedPane。這tabpane具有動態功能,即可以添加,關閉標籤和用戶可以更改標籤內容。序列化JTabbedPane

據我所知,在執行期間整個tabpane保留在隨機存取存儲器中。但我只需要將當前選中的選項卡保留在RAM中,而其他選項則不需要。其他應該被寫入磁盤存儲器並在被調用時加載到RAM中。我想這是可能的JTabbedPaneSerializable組件。但是,完成這個的確切程序是什麼?

+0

爲什麼要序列化一個GUI? – Daniel 2011-02-14 16:56:50

回答

3

您不能序列化部分GUI,而只是整個組件圖。一種可能性是將每個窗格序列化爲單獨的文件,並在需要時對這些窗格進行反序列化,但是必須手動構建父級選項卡及其上的所有內容,而這些可能並非您想要的。

2

確實JTabbedPaneSerializable。但要解決您的問題,最好是有一個屬性文件,並在讀取屬性文件後確定您的程序,確定需要哪些選項卡並創建一個新的JTabbedPane並用它代替。序列化JTabbedPane不會證明太有用。

+0

你能解釋'財產檔案'嗎?這個想法對瀏覽器應用程序有用嗎? – 2011-02-14 17:10:35

+1

屬性文件是一個文件,其中包含以下格式的鍵值對:CreatePanel = 1 \ nEditpanel = 0 \ nDeletePanel = 1。 [請注意,「\ n」實際上對應於屬性文件中的新行]。如果您希望您的UI在運行時可配置,它將變得很有用。該過程如下:使用指定的變量來表示是否包含該特定的面板。如果是,請將其包含在您的JTabbedPane中,否則不要。此外,java.util.Property類可以方便地讀取,更新屬性文件。 – 2011-02-14 21:30:57