Java—记忆/保存输入字段的程序

Java—记忆/保存输入字段的程序,java,swing,save,jtextfield,Java,Swing,Save,Jtextfield,我有一个程序,它使用三个JTextField字段作为主要的数据输入字段。我希望这样,当用户终止程序,然后再次打开它时,他们的最后一个条目仍然在字段中 我怎样才能做到这一点?我需要某种数据库还是有更简单的方法?有一些选项,您可能希望将数据保存到配置文件中,并在程序开始时加载它。有一些选项,您可能希望将数据保存到配置文件中,并在程序开始时加载。您可以序列化数据并将其存储在文件中:您可以序列化数据并将其存储在文件中:我还建议查看系统,因为这样可以处理每个用户或整个系统的保存信息 例如: void wr

我有一个程序,它使用三个
JTextField
字段作为主要的数据输入字段。我希望这样,当用户终止程序,然后再次打开它时,他们的最后一个条目仍然在字段中


我怎样才能做到这一点?我需要某种数据库还是有更简单的方法?

有一些选项,您可能希望将数据保存到配置文件中,并在程序开始时加载它。

有一些选项,您可能希望将数据保存到配置文件中,并在程序开始时加载。

您可以序列化数据并将其存储在文件中:

您可以序列化数据并将其存储在文件中:

我还建议查看系统,因为这样可以处理每个用户或整个系统的保存信息

例如:

void writeMethod() {
    Preferences prefs = Preferences.userNodeForPackage(this);
    prefs.put("key", "value");
}

void readMethodInSameClass() {
    Preferences prefs = Preferences.userNodeForPackage(this);
    prefs.get("key");
}

可能比API参考更好。

我还建议查看系统,因为这样可以保存每个用户或整个系统的信息

例如:

void writeMethod() {
    Preferences prefs = Preferences.userNodeForPackage(this);
    prefs.put("key", "value");
}

void readMethodInSameClass() {
    Preferences prefs = Preferences.userNodeForPackage(this);
    prefs.get("key");
}
可能比API参考更好

我需要某种数据库吗

否。对于“3个字符串”,A D/B是过多的

还是有更简单的方法

不止一个

  • 有三行文字的A
  • /
  • 档案
  • API
  • 应用程序。使用部署的可以使用
  • 这就是我脑海中能回忆起的一切

    我需要某种数据库吗

    否。对于“3个字符串”,A D/B是过多的

    还是有更简单的方法

    不止一个

  • 有三行文字的A
  • /
  • 档案
  • API
  • 应用程序。使用部署的可以使用

  • 这就是我能想到的一切。

    实现这一点的最简单方法是在文本字段中添加一个侦听器并使用java preferences api:

    textField = new JTextField();
        // set document listener
        textField.getDocument().addDocumentListener(new MyListener());
        // get the preferences associated with your application
        Preferences prefs = Preferences.userRoot().node("unique_string_representing_your_preferences");
        // load previous value
        textField.setText(prefs.get("your_preference_unique_key", ""));
    
    class MyListener implements DocumentListener {
    
        @Override
        public void changedUpdate(DocumentEvent event) {
            final Document document = event.getDocument();
            // get the preferences associated with your application
            Preferences prefs = Preferences.userRoot().node("unique_string_representing_your_preferences");
            try {
                // save textfield value in the preferences object
                prefs.put("your_preference_unique_key", document.getText(0, document.getLength()));
            } catch (BadLocationException e) {
                e.printStackTrace();
            }
        }
    
        @Override
        public void insertUpdate(DocumentEvent arg0) {
        }
    
        @Override
        public void removeUpdate(DocumentEvent arg0) {
        }
    }
    
    但通过这种方式,每次更改文本字段中的值时,它都会被保存。如果只想在应用程序关闭时保存,可以向应用程序中添加WindowListener并写入其内容

    窗口关闭


    方法更改上一个changedUpdate的内容。

    实现这一点的最简单方法是向文本字段添加侦听器并使用java首选项api:

    textField = new JTextField();
        // set document listener
        textField.getDocument().addDocumentListener(new MyListener());
        // get the preferences associated with your application
        Preferences prefs = Preferences.userRoot().node("unique_string_representing_your_preferences");
        // load previous value
        textField.setText(prefs.get("your_preference_unique_key", ""));
    
    class MyListener implements DocumentListener {
    
        @Override
        public void changedUpdate(DocumentEvent event) {
            final Document document = event.getDocument();
            // get the preferences associated with your application
            Preferences prefs = Preferences.userRoot().node("unique_string_representing_your_preferences");
            try {
                // save textfield value in the preferences object
                prefs.put("your_preference_unique_key", document.getText(0, document.getLength()));
            } catch (BadLocationException e) {
                e.printStackTrace();
            }
        }
    
        @Override
        public void insertUpdate(DocumentEvent arg0) {
        }
    
        @Override
        public void removeUpdate(DocumentEvent arg0) {
        }
    }
    
    但通过这种方式,每次更改文本字段中的值时,它都会被保存。如果只想在应用程序关闭时保存,可以向应用程序中添加WindowListener并写入其内容

    窗口关闭


    方法上一个changedUpdate的内容。

    这只是您询问的数据形式?@andreThompson,我只想在用户重新启动程序时将数据输入到文本字段中。我不是问您“想要什么”。具体点。你对哪一部分有意见?是1)检测到程序关闭。2) 数据的形式。3) 反序列化数据的方法。--数据可以存储在十几种形式中,可以存储在多个位置,读/写数据的不同方式,以及检测程序退出的技巧。尽量缩小你遇到的问题。这只是你询问的数据形式?@AndrewThompson,我只想在用户重新启动程序时将数据输入文本字段。我不是问你“想要什么”。具体点。你对哪一部分有意见?是1)检测到程序关闭。2) 数据的形式。3) 反序列化数据的方法。--数据可以存储在十几种形式中,可以存储在多个位置,读/写数据的不同方式,以及检测程序退出的技巧。尽量缩小你遇到的问题。