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是过多的
还是有更简单的方法
不止一个
这就是我能想到的一切。实现这一点的最简单方法是在文本字段中添加一个侦听器并使用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) 反序列化数据的方法。--数据可以存储在十几种形式中,可以存储在多个位置,读/写数据的不同方式,以及检测程序退出的技巧。尽量缩小你遇到的问题。