2013-12-08 20 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数据包 为应用程序提供了一种存储和检索用户和系统偏好和配置数据的方法。数据永久存储在依赖于实现的后备存储的 中。有两个独立的偏好节点树,一个用于用户偏好,一个用于偏好系统。