1

JTextField主なデータ入力フィールドとして3 つのフィールドを使用するプログラムがあります。ユーザーがプログラムを終了してから再度開いたときに、最後のエントリがフィールドに残るようにしたいのです。

どうすればこれを達成できますか?ある種のデータベースが必要ですか、それとももっと簡単な方法がありますか?

4

5 に答える 5

7

ある種のデータベースが必要でしょうか。

いいえ。AD/Bは「3ストリング」ではやり過ぎです。

..またはもっと簡単な方法はありますか?

複数あります。

  1. オブジェクトのシリアル化
  2. File3行のテキストを含むA。
  3. XMLEncoder / Decoder
  4. Propertiesファイル。
  5. PreferencesAPI 。
  6. アプリ。JWSを使用してデプロイされた場合、 PersistenceServiceを使用できます。

頭のてっぺんから思い出せるのはそれだけです。

于 2012-04-08T09:49:10.613 に答える
2

これを実現する最も簡単な方法は、リスナーをテキスト フィールドに追加し、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 を追加して、その中に書き込むことができます。

ウィンドウを閉じる

method 以前の changedUpdate の内容。

于 2012-04-08T10:36:24.127 に答える
2

Java Preferencesシステムも検討することをお勧めします。これは、ユーザーごとまたはシステム全体の情報の保存を処理できるためです。

例として:

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

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

この説明は、API リファレンスよりも優れている可能性があります。

于 2012-04-08T09:40:15.800 に答える
1

いくつかのオプションがあります。データを構成ファイルに保存し、プログラムの最初にロードすることができます。

于 2012-04-08T09:31:04.597 に答える
1

それらをシリアライズしてファイルに保存できます: http://www.tutorialspoint.com/java/java_serialization.htm

于 2012-04-08T09:31:20.757 に答える