有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JFrame将用户选择保存到。txt文件?

我正在做这个swing项目,我认为将用户选择保存到文本文件中是个好主意,这样每当程序关闭并再次打开时,旧的选择仍然保留在那里。主要存储复选框、单选按钮和一些整数变量。这是不是可以简单地做到。txt文件,还是必须使用xml之类的东西

这样做的目的是从txt文件中获取信息,并用于在JFrame中设置最新的用户选择


共 (5) 个答案

  1. # 1 楼答案

    使用属性文件。要在窗口关闭时保存,请使用如下代码:

        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                saveProperties();
            }
        });
    
  2. # 2 楼答案

    您可以使用Properties来实现这一点,不过,创建一个对象来保存信息并使用JAXB将其存储在XML中也很不错,而且更加灵活(在我看来),因为XML结构允许更多类似树的结构,允许保存更复杂的信息,并将相关的内容放在一起。没有自动的方法可以做到这一点,因此程序员必须为此编写代码。如果您的程序被设置为MVC、Model-View-Control、type-program,那么您只需保存模型,也许正如我所提到的,可以通过JAXB

  3. # 3 楼答案

    这正是属性文件的用法

    只需设置属性并保存到属性文件,然后在加载时获取这些属性。定义保存时需要保存在键值对中的项。阅读时可以从键中检索

    例如,对于单选按钮,属性write as

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

    读书的时候,

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

    如果选中此单选按钮,则将在加载时设置该值。如果没有,就不检查它

    有关更多详细信息,请参阅http://www.mkyong.com/java/java-properties-file-examples/

  4. # 4 楼答案

    您可以使用常规文本文件。只需将程序中的数据编码为文本,并在加载时将文本解码为表单

    正如其他答案所建议的,您也可以使用属性来避免重新发明轮子

  5. # 5 楼答案

    对于这个场景,使用Java™ Preferences API,页面显示:

    Applications require preference and configuration data to adapt to the needs of different users and environments. The java.util.prefs package provides a way for applications to store and retrieve user and system preference and configuration data. The data is stored persistently in an implementation-dependent backing store. There are two separate trees of preference nodes, one for user preferences and one for system preferences.