【发布时间】:2014-09-04 14:32:37
【问题描述】:
我想知道如何保存 JTextArea 文本,当用户在区域中键入内容时,即使用户退出程序并重新打开它,它也会保留在那里。
对不起,我的英语和语法不好。
【问题讨论】:
-
使用数据库或保存到文件并从中读取。
-
你应该阅读Data Persistence
我想知道如何保存 JTextArea 文本,当用户在区域中键入内容时,即使用户退出程序并重新打开它,它也会保留在那里。
对不起,我的英语和语法不好。
【问题讨论】:
有多种方法可以做到这一点。
有很多方法可以做到,很难确定哪个是最好的,因为我们不知道你想要实现什么。
【讨论】:
一般来说,您可能希望使用 Swing 组件在某些“模型”对象中公开字段,并仅在显式用户操作时保存模型(到数据库、文件等),但也将其保存给某些用户- 每个用户操作的私有位置(“自动保存”)。但是,java.util.prefs.Preferences 可能对您的要求很有用。一个简单的例子(未经测试):
public class SwingPrefsDemo extends JFrame {
// other fields, etc...
Preferences prefsNode = Preferences.userNodeForPackage(SwingPrefsDemo.class);
JTextField tf_ta;
public SwingPrefsDemo() {
// ...
tf_ta = new JTextArea();
tf_ta.setText(prefsNode.get("tf_ta","enter text here"));
this.add(tf_ta);
tf_ta.getDocument().addDocumentListener(new DocumentListener() {
public void changedUpdate(DocumentEvent evt) { change(); }
public void insertUpdate(DocumentEvent evt) { change(); }
public void removeUpdate(DocumentEvent evt) { change(); }
private void change() {
prefsNode.put("tf_ta",tf_ta.getText());
}});
}
}
【讨论】: