Eingabe in JTextField speichern

Status
Nicht offen für weitere Antworten.

Rave

Bekanntes Mitglied
Hey,
Ich würde gerne das meine App mir das was ich in einem JTextField eingebe auch speichert. Wie kann ich das coden ??? Also Frame und JTextField sind ja kein Problem aber dann hörts bei mir auf :rtfm:
 
was heisst speichern ?

in einer variable / in eine datei / in eine DB ?
 
was heisst speichern ?

in einer variable / in eine datei / in eine DB ?

Oh sry zu schelcht beschrieben 😳 ehm also in einer .txt zum Beispiel so das er das was ich in dem JTextField eingebe beim nächsten mal wenn ich die App wieder starte wieder in diesem Anzeigt !!
Hoffe das ist verständlich ^^
 
Dann den Text "herausholen" via getText(), in einen BufferWriter schreiben
und bei erneutem Programmstart schauen ob du diese Datei bereits erstelltest.
Falls ja dann mit einem BufferedReader den Text auslesen und via setText(...)
in deinem JTextField wieder darstellen lassen.
 
Dann den Text "herausholen" via getText(), in einen BufferWriter schreiben
und bei erneutem Programmstart schauen ob du diese Datei bereits erstelltest.
Falls ja dann mit einem BufferedReader den Text auslesen und via setText(...)
in deinem JTextField wieder darstellen lassen.

Ohje da kommt ja was auch mich zu ^^ gibt dazu irgendein Code Beispiel oder Tutorial ??? Ich weiss nich ob ich das so schon hinbekomme, also das mit dem getText() und setText() versteh ich ja noch baer das mit dem BufferedText ist mir sehr neu damit kann ich nich wirklich etwas anfangen ???:L
 
Also so weit so gut ich hab es soweit das er mir die .txt ausliest und als System.out ausgibt. Nur wie bekomme ich das jetzt in mein JTextField ???

Hier mal der Code:
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;

/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 05.10.2009
  * @author
  */

public class App1 extends JFrame {
  // Anfang Attribute
  
  private JTextField Notizen = new JTextField();
  // Ende Attribute

  public App1(String title) {
    // Frame-Initialisierung
    super(title);
    setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    int frameWidth = 150;
    int frameHeight = 150;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    Container cp = getContentPane();
    cp.setLayout(null);
    // Anfang Komponenten

    Notizen.setBounds(0, 0, 150, 150);
    Notizen.setText("txt/notizen1.txt");
    cp.add(Notizen);

    // Ende Komponenten

    setResizable(false);
    setVisible(true);
    
    Reader f = null;
    try {
      f = new FileReader( "txt/notizen1.txt" );
      for (int c; ( c = f.read() ) != -1; )
          System.out.print( (char) c );
    }
    catch ( IOException e ) {
      System.err.println( "Error reading File!" );
    }
    finally {
      try {
        f.close(); } catch ( Exception e ) {  }
      }
  }


  // Anfang Methoden
  // Ende Methoden

  public static void main(String[] args) {
    new App1("App1");
  }
}
 
was wird das? ist das für die Schule oder für private Zwecke?


warum ließst du zeichenweise?

Java:
    BufferedReader reader = new BufferedReader(new FileReader(new File("C:/test.txt")));
    String line = reader.readLine();
    if(line==null)
       line ="";
    
    JTextField field = new JTextField(line);

....
 
was wird das? ist das für die Schule oder für private Zwecke?


warum ließst du zeichenweise?

Java:
    BufferedReader reader = new BufferedReader(new FileReader(new File("C:/test.txt")));
    String line = reader.readLine();
    if(line==null)
       line ="";
    
    JTextField field = new JTextField(line);

....

Das soll so zu sagen ein kleiner Notizzettel werden!! Einfach zum üben für mich !!!
Hab das Beispiel aus dem E-Book Java ist auch eine Insel !!!
Krieg das irgenwie nich sauber in meinen Code rein 😳
 
Also hab den Code meine App noch mal en bisschen erweitert:

Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

import java.io.Writer;
import java.io.FileWriter;
import java.io.IOException;
import java.io.FileReader;
import java.io.Reader;

/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 05.10.2009
  * @author
  */

public class App1 extends JFrame {
  // Anfang Attribute
  
  private JTextField Notizen = new JTextField();
  // Ende Attribute

  public App1(String title) {
    // Frame-Initialisierung
    super(title);
    setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    int frameWidth = 150;
    int frameHeight = 150;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    Container cp = getContentPane();
    cp.setLayout(null);
    // Anfang Komponenten

    Notizen.setBounds(0, 0, 150, 150);
    Notizen.setText("txt/notizen1.txt");
    cp.add(Notizen);

    // Ende Komponenten

    setResizable(false);
    setVisible(true);
    // FILE WRITER
    Writer fw = null;

    try
    {
      fw = new FileWriter( "txt/notizen1.txt" );
      fw.write( "Hat geklappt" );
      fw.append( System.getProperty("line.separator") ); // e.g. "\n"
    }
    catch ( IOException e ) {
      System.err.println( "Konnte Datei nicht erstellen" );
    }
    finally {
      if ( fw != null )
        try { fw.close(); } catch ( IOException e ) { }
    }
    
    // FILE READER
    Reader f = null;
    try {
      f = new FileReader( "txt/notizen1.txt" );
      for (int c; ( c = f.read() ) != -1; )
          System.out.print( (char) c );
    }
    catch ( IOException e ) {
      System.err.println( "Error reading File!" );
    }
    finally {
      try {
        f.close(); } catch ( Exception e ) {  }
      }
  }


  // Anfang Methoden
  // Ende Methoden

  public static void main(String[] args) {
    new App1("App1");
  }
}

Nur wie bekomme ich es jetzt dann noch hin das er die Eingaben in das JTextField in die txt schreibt und diese dann beim Neustart des Programms wieder ausliest ???
 
Java:
BufferedWriter buf = new BufferedWriter(new FileWriter("text.txt"));
buf.writeLine(textfield.getText())
 
Krieg das irgenwie nich sauber in meinen Code rein
Trenn deine Zuständigkeiten...
Irgend ein Objekt ist fürs Lesen und Schreibn zuständig.
Irgend ein Objekt fürs Anzeigen der Daten
Irgend ein Objekt fürs Halten der Daten während die Anwendung läuft.
Irgend ein Objekt zum Reagieren auf den Benutzer...

Nur wie bekomme ich es jetzt dann noch hin das er die Eingaben in das JTextField in die txt schreibt und diese dann beim Neustart des Programms wieder ausliest ??? [/qoute]
das Kapitel in der JavaInsel schon gelesen? Ich würd mir das echt mal anschaun...
 
Für ein JTextfield und JTextarea gibts die methoden read und write...
Des müsste doch genau das sein was du suchst...
 
Trenn deine Zuständigkeiten...
Irgend ein Objekt ist fürs Lesen und Schreibn zuständig.
Irgend ein Objekt fürs Anzeigen der Daten
Irgend ein Objekt fürs Halten der Daten während die Anwendung läuft.
Irgend ein Objekt zum Reagieren auf den Benutzer...

Nur wie bekomme ich es jetzt dann noch hin das er die Eingaben in das JTextField in die txt schreibt und diese dann beim Neustart des Programms wieder ausliest ??? [/qoute]
das Kapitel in der JavaInsel schon gelesen? Ich würd mir das echt mal anschaun...

Also das mit dem BufferedWriter hab ich probiert...naja nich so erfolgreich ^^ hab das kapitel von der Java Insel gelesen aber irgenwie fehlt mir noch das Verständniss da alleine weiter zu kommen !!! Ich hab zwar verstanden wie ich eine txt datei erstelle und die se dann lesen lasse aber wie ichdas ganze mit dem JTextFiel veränder und das dann speicher....da happerts bei mir immer noch 😳

Also immer noch so weit:
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
 
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
 
/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 05.10.2009
  * @author
  */
 
public class App1 extends JFrame {
  // Anfang Attribute
  
  private JTextField Notizen = new JTextField();
  // Ende Attribute
 
  public App1(String title) {
    // Frame-Initialisierung
    super(title);
    setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    int frameWidth = 150;
    int frameHeight = 150;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    Container cp = getContentPane();
    cp.setLayout(null);
    // Anfang Komponenten
 
    Notizen.setBounds(0, 0, 150, 150);
    Notizen.setText("Hier Notizen einfügen!!!!");
    cp.add(Notizen);
 
    // Ende Komponenten
 
    setResizable(false);
    setVisible(true);
    
    Reader f = null;
    try {
      f = new FileReader( "txt/notizen1.txt" );
      for (int c; ( c = f.read() ) != -1; )
          System.out.print( (char) c );
    }
    catch ( IOException e ) {
      System.err.println( "Error reading File!" );
    }
    finally {
      try {
        f.close(); } catch ( Exception e ) {  }
      }
  }
 
 
  // Anfang Methoden
  // Ende Methoden
 
  public static void main(String[] args) {
    new App1("App1");
  }
}
EDIT: So hab ich das imom im Editor !! @ ARadauer
 
Zuletzt bearbeitet:
Genau setze den Filenamen in das Textfeld ...Notizen.setText("txt/notizen1.txt");
und gib den Inhalt der Textdatei zeichenweise auf der Console aus ...System.out.print( (char) c );
?????????
 
achh ist ja wurscht:
Java:
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;

import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.WindowConstants;

public class App1 extends JFrame {
  // Anfang Attribute
  
  private JTextField notizen = new JTextField();
  // Ende Attribute
 
  public App1(String title) throws IOException {
    // Frame-Initialisierung
    super(title);
    setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    int frameWidth = 150;
    int frameHeight = 150;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    Container cp = getContentPane();
    cp.setLayout(null);
    // Anfang Komponenten
 
    notizen.setBounds(0, 0, 150, 150);
    notizen.setText("txt/notizen1.txt"); //<-- ist das dein ernst??????
    cp.add(notizen);
 
    // Ende Komponenten
 
    setResizable(false);
    setVisible(true);
    
    //hab ich doch vorhin schon gepostet!!!!
    BufferedReader reader = new BufferedReader(new FileReader(new File("C:/test.txt")));
    String line = reader.readLine();
    if(line==null)
       line ="";
    
    notizen.setText(line);
  }
 
 
  // Anfang Methoden
  // Ende Methoden
 
  public static void main(String[] args) throws IOException {
    new App1("App1");
  }
}
 
So klappt nun danke ;-) so hab ich das auch verstanden wie du das meintest 😳 !!! Ich dachte ich brauche dann noch den FileWriter den ich vorher drinne hatte !!!

So aber wie schreibt er das was ich in das JTextField schreibe nun auch in dei txt ??? das klappt i wie noch nicht !?!
Dazu brauch ich dann ja einen Writer ist das dann auch so ein BufferedWriter oder wie ??
 
Java:
try {
        notizen.write(new FileWriter(line));
     }
catch {
        System.out.println("Fehler");
}

Bin ich da auf den richtigem Weg oder mache ich mir das schon wieder zu kompliziert !?!

@ Hab jetzt erst dein Post gelesen !! Mach ich nochmal ;-)
 
die frage ist halt... wann soll gespeichert werden?

nach dem lesen? das kannst du dir sparen, was soll den drinnen stehen?

Java:
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;

import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.WindowConstants;

public class App1 extends JFrame {
   // Anfang Attribute

   private JTextField notizen = new JTextField();
   // Ende Attribute

   public App1(String title) throws IOException {
      // Frame-Initialisierung
      super(title);
      setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
      
      this.addWindowListener(new WindowAdapter() {
         @Override
         public void windowClosing(WindowEvent e) {
            try {
               writeStringToFile(notizen.getText());
            } catch (IOException e1) {
               e1.printStackTrace();
            }            
         }
        
      });
      
      int frameWidth = 150;
      int frameHeight = 150;
      setSize(frameWidth, frameHeight);
      Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
      int x = (d.width - getSize().width) / 2;
      int y = (d.height - getSize().height) / 2;
      setLocation(x, y);
      Container cp = getContentPane();
      cp.setLayout(null);
      // Anfang Komponenten

      notizen.setBounds(0, 0, 150, 150);
      cp.add(notizen);


      setResizable(false);
      setVisible(true);

      

      notizen.setText(readStringFromFile());
   }


   public String readStringFromFile() throws IOException{
      BufferedReader reader = new BufferedReader(new FileReader(new File("C:/test.txt")));
      String line = reader.readLine();
      if(line==null)
         line ="";
      return line;
   }
   
   public void writeStringToFile(String line)  throws IOException{
      BufferedWriter writer = new BufferedWriter(new FileWriter(new File("C:/test.txt")));
      writer.write(line);
      writer.flush();
   }
   

   public static void main(String[] args) throws IOException {
      new App1("App1");
   }
   
}
das soll aber nur ein Beispiel sein. Das ist von Seiten der objektorietierung und Exception Handling nicht besonders sinnvoll...
 
Java:
public void writeStringToFile(String line)  throws IOException{
      BufferedWriter writer = new BufferedWriter(new FileWriter(new File("C:/test.txt")));
      writer.write(line);
      writer.flush();
   }

Ob dus mir nun glaubst oder nicht ^^ sowas in der Art hab ich auch grade geschrieben !!! Aber nur in der Art ^^ er hat zwar etwas reingeschrieben aber immer gleich wieder gelöscht ^^ warum auch immer !!! Aber so wie du das da hast funktioniert es !!!
Ich verstehe es auch wie es funktioniert 🙂 ausser was diese Zeile macht:
Java:
writer.flush();

Was macht diese ???
 
Okay danke, auch für die Mühe mich von dem Schlauch runter zu holen auf dem ich stand :-D

LG Rave ;-)
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben