2013-12-08 43 views
0

我正在處理這個擺動項目,並認爲將用戶選擇保存到文本文件是一個好主意,因此每當程序關閉並再次打開時,舊選擇仍然存在。主要想存儲複選框,單選按鈕和一些整數變量等東西。這可能只是在純粹的.txt文件中做,或者我將不得不使用類似xml的東西?JFrame將用戶選擇保存到.txt文件?

這應該完成,然後打算從txt文件中獲取信息,並使用它來在JFrame中設置最新的用戶選擇。

回答

0

這是屬性文件的確切用法。

它只是設置屬性並保存到屬性文件並在加載時獲取這些屬性的問題。在保存時定義您需要保存在鍵值對中的項目。閱讀時你可以從鑰匙上取回。

例如,單選按鈕的屬性寫爲;

prop.setProperty("radioselected", "true"); //true or false based on the selection 

讀取時,

boolean radioSelected = Boolean.parseBoolean(prop.getProperty("radioselected")) 

如果該值爲true,設置加載UI時,單選按鈕選中狀態如此。如果不保持不被檢查。

詳情請參閱http://www.mkyong.com/java/java-properties-file-examples/

1

你可以使用Properties來做這件事,儘管創建一個對象來保存信息並使用JAXB將它存儲在XML中也很好,並且更靈活一些(在我看來),因爲XML結構允許更多的樹像結構,允許保存更復雜的信息,並保持相關的東西在一起。有沒有自動的方式來做到這一點,所以你程序員將不得不爲此編寫代碼。如果您的程序設置爲MVC,Model-View-Control,輸入程序,您可以簡單地保存模型,或者像我剛纔提到的那樣通過JAXB。

+1

+1 [JAXB](http://www.oracle.com/technetwork/articles/javase/index-140168.html);作爲參考,'java.util.Preferences'在Mac/Linux上使用XML,在Windows上使用XML。 – trashgod

+0

@trashgod:感謝您的信息。 FWIW,我討厭Windows註冊表。我不知道那頭野獸有什麼死角和鬼魂。 –

0

您可以使用常規文本文件。這只是將程序中的數據編碼爲文本並在加載時將文本解碼爲表單的問題。

正如其他答案所示,您還可以使用屬性來重新發明輪子。

0

使用屬性文件。要在窗口關閉時保存,請使用以下代碼:

addWindowListener(new WindowAdapter() { 
     public void windowClosing(WindowEvent e) { 
      saveProperties(); 
     } 
    }); 
+0

我對此有一個快速閱讀,我想我理解如何從變量中保存某些信息,但是如何保存複選框或單選按鈕的狀態?所以它們在下次運行時顯示爲選中狀態。你能否詳細談談這個問題。 – Ilja

+1

@IJAJA:這將取決於你的程序設置。有沒有自動的方式來做到這一點,所以你程序員將不得不爲此編寫代碼。如果您的程序設置爲MVC,Model-View-Control,輸入程序,則只需保存模型。 –

1

對於這種情況,使用Java™ Preferences API,頁面上顯示它:

應用程序需要參數和配置數據以適應 需求不同的用戶和環境。 java.util.prefs數據包 爲應用程序提供了一種存儲和檢索用戶和系統偏好和配置數據的方法。數據永久存儲在依賴於實現的後備存儲的 中。有兩個獨立的偏好節點樹,一個用於用戶偏好,一個用於偏好系統。