【问题标题】:how to save JTextArea text?如何保存 JTextArea 文本?
【发布时间】:2014-09-04 14:32:37
【问题描述】:

我想知道如何保存 JTextArea 文本,当用户在区域中键入内容时,即使用户退出程序并重新打开它,它也会保留在那里。

对不起,我的英语和语法不好。

【问题讨论】:

标签: java save jtextarea


【解决方案1】:

有多种方法可以做到这一点。

  1. 使用数据库:您可以在数据库中存储许多不同的输入,并将其链接到进行输入的用户或其他任何内容。
  2. 写入 .txt 文件:这使您可以非常轻松地从应用程序外部访问数据。
  3. 序列化字符串:您可以将文本保存在字符串中并序列化对象。

有很多方法可以做到,很难确定哪个是最好的,因为我们不知道你想要实现什么。

【讨论】:

    【解决方案2】:

    一般来说,您可能希望使用 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());
          }});
      } 
    }
    

    【讨论】:

    • 当我运行您的代码或使用您的代码时:JFrame j = new JFrame(""); j.setSize(); j.setVisible(true);代码不起作用。有什么我做错了吗?
    猜你喜欢
    • 2012-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-06
    相关资源
    最近更新 更多