BufferedReader => TextField/Label

Milkaselnuss

Aktives Mitglied
Wie kann ich von einem Buffered Reader, der die Zeilen einer .txt Datei ausliest, die Zeilen in ein TextField bzw. ein Label setzen?
Java:
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Kontaktbuch extends JFrame implements ActionListener {
   
    JButton suchen;
    JLabel label1;
    JTextField ausgabe;
    JTextField eingabe = new JTextField("");
   
    public Kontaktbuch(){
        super ("Kontaktbuch");
        JPanel panel = new JPanel();
        Box oben = Box.createHorizontalBox();
        Box mitte = Box.createHorizontalBox();
        Box unten = Box.createHorizontalBox();
        oben.setPreferredSize(new Dimension(400,20));
        mitte.setPreferredSize(new Dimension(400,30));
        unten.setPreferredSize(new Dimension(400,150));
        unten.setBorder(BorderFactory.createBevelBorder(1));
        label1 = new JLabel("Gesuchte Person: ");
        suchen = new JButton("Suche beginnen");
        suchen.addActionListener(this);
        ausgabe = new JTextField("");
        oben.add(label1);
        oben.add(eingabe);
        mitte.add(suchen);
        unten.add(ausgabe);
        panel.setLayout(new FlowLayout());
        panel.add(oben);
        panel.add(mitte);
        panel.add(unten);
        setContentPane(panel);
       
    }
    public void actionPerformed (ActionEvent Ereignis){
        Object Quelle = Ereignis.getSource();
        if (Quelle == suchen){
            try
            {
                String suche = eingabe.getText();
                final String verzeichnis = ("C:/Users/User/Documents/Kontaktbuch/" + suche + ".txt");
               
                BufferedReader bReader = new BufferedReader(new FileReader(verzeichnis));

                String sZeile = bReader.readLine();
                while (sZeile != null )
                {
                   
                    sZeile = bReader.readLine();
                   
                    System.out.println(sZeile);
                }        
                   
              
            }
            catch(IOException ioe)
            {
                ioe.printStackTrace();
            }
        }
    }


    public static void main(String[] args) {
        Kontaktbuch fenster = new Kontaktbuch();
        fenster.setSize(420,257);
        fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        fenster.setVisible(true);
        fenster.setLocationRelativeTo(null);


    }

}
 
Zuletzt bearbeitet von einem Moderator:

redJava99

Bekanntes Mitglied
JTextfield und JLabel verfügen über die Methode "setText(String text)", mit der du den Text setzen kannst.
Daher:
[JAVA=66]ausgabe.setText(sZeile);[/code]

Nebenbei: Streams schließt man, wenn man sie nicht mehr benutzt.
[JAVA=69]bReader.close();[/code]
 

Milkaselnuss

Aktives Mitglied
JTextfield und JLabel verfügen über die Methode "setText(String text)", mit der du den Text setzen kannst.
Daher:
[JAVA=66]ausgabe.setText(sZeile);[/code]

Nebenbei: Streams schließt man, wenn man sie nicht mehr benutzt.
[JAVA=69]bReader.close();[/code]

Danke für den Tipp mit den Streams. Und das mit dem setText hab ich schon ausprobiert und es hat nicht geklappt. Hätt ich vllt. dazu schreiben sollen :-/
 

redJava99

Bekanntes Mitglied
Also, habe mir das ganze jetzt mal genauer angeschaut.

Zunächst einmal: setText() an sich funktioniert schon ;-)
Problem: Es hängt nichts dran, sondern ersetzt den vorherigen Inhalt. Der letzte Inhalt (letzte Zeile) ist nunmal null, daher bleibt das Textfeld scheinbar leer.

Wenn ich das richtig sehe, willst du den Inhalt der gesuchten Textdatei anzeigen (?).

Ein JTextfield, was du verwendest, ist nur für eine einzige Zeile gedacht. Ideal also für dein Sucheingabefeld, aber nicht geeignet für die Ausgabe. Du solltest es durch eine JTextarea ersetzen. Diese kann mehrere Zeilen anzeigen und bietet entsprechend die Methode "append(String text)", die an den bisherigen Inhalt noch etwas anhängt.

Korrektur zu meiner ersten Antwort:
ausgabe.setText(sZeile) bzw. jetzt ausgabe.append(sZeile) muss natürlich vor dem Lesevorgang in der Schleife stehen, da sonst die erste Zeile übergangen wird.

Edit:
Kleine Anmerkung noch: Variablen schreibt man klein ("Object [STRIKE]Q[/STRIKE]quelle" / "ActionEvent [STRIKE]E[/STRIKE]ereignis" ....). Gewöhn dir das richtig an ;-)
 
Zuletzt bearbeitet:

Milkaselnuss

Aktives Mitglied
Eine Frage hätt ich dann noch, wie filtere ich das "null" am Schluss heraus? Eigentlich sollte das ja nichtmal da stehen (wegen dem while), aber irgendwas stimmt da nicht.
 

redJava99

Bekanntes Mitglied
Verschieb die Zeile sZeile = bReader.readLine(); ganz an das Ende der Schleife. Klar kann (muss) hier am Ende null herauskommen. Die Prüfung findet ja erst zu Beginn des nächsten potentiellen Schleifendurchlaufs statt.

Nochwas:
Java:
if (Quelle == suchen)
funktioniert in diesem Fall zwar, ist aber dennoch nicht korrekt.
Der Operator == vergleicht bei nicht-primitiven Datentypen die Adressen der Objekte, nicht die Objekte selbst. Objekte vergleicht man grundsätzlich mit "equals": obj1.equals(obj2)

Simples Beispiel:
Java:
String a = new String("hallo");
String b = new String("hallo");
System.out.println(a==b); //false
System.out.println(a.equals(b)); //true
 
S

SlaterB

Gast
wichtiger Tipp: Probleme trennen,
mache eine Methode, die aus BufferedReader in einen String einliest, mit simplen System.out.println() ausgeben,
dann kannst du über Schleife, Zeilen, null usw. nachdenken ohne dich mit JLabel ärgern zu müssen,

danach eine weitere Methode bzw. ja nur eine Code-Zeile um den fertigen String in die GUI zu bekommen

Aufgaben trennen, strukturiert denken, das sind wichtige Eigenschaften jeder Arbeit
 

Milkaselnuss

Aktives Mitglied
Ah ok.
Nur 1 Problem hab ich jetzt mit dem append
Gibt es da auch eine andere Methode mit der der vorherige Text nicht übenommen wird?
Denn sobald ich nach einem 2. Namen suche, reiht sich dieser am Schluss ein.

Selbst gelöst^^
Einfach setText und getText
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
berserkerdq2 Brauche ich while != -1, wenn ich immer einen BufferedReader verwende? Java Basics - Anfänger-Themen 8
S Erklärung BufferedReader und InputStreamReader Java Basics - Anfänger-Themen 4
Dimax BufferedReader.readLine().length() wirft NullPointer Java Basics - Anfänger-Themen 6
K Verständnisfrage Server/Client BufferedReader, PrintWriter Java Basics - Anfänger-Themen 2
M BufferedReader begrenzen Java Basics - Anfänger-Themen 3
M Java: BufferedReader liest nur die Hälfte der Text-Datei. Java Basics - Anfänger-Themen 4
O BufferedReader - Endlos Schleife Java Basics - Anfänger-Themen 2
K BufferedReader für IOTools ersetzen? Java Basics - Anfänger-Themen 17
M BufferedReader neue Zeile nach Knopfdruck Java Basics - Anfänger-Themen 9
H Unterschied BufferedReader und BufferedInputStream Java Basics - Anfänger-Themen 4
S BufferedReader TextFields Import Java Basics - Anfänger-Themen 5
B BufferedReader gibt Datei-Inhalt doppelt aus Java Basics - Anfänger-Themen 3
S BufferedReader nächste Zeile lesen Java Basics - Anfänger-Themen 4
E Erste Schritte txt.Datei mit BufferedReader einlesen und in 2D-Array abspeichern Java Basics - Anfänger-Themen 15
A Textdatei mit BufferedReader einlesen Java Basics - Anfänger-Themen 0
P Einlesen von Daten via BufferedReader Java Basics - Anfänger-Themen 4
S Einlesen BufferedReader Java Basics - Anfänger-Themen 5
D BufferedReader/InputStreamReader/Split Java Basics - Anfänger-Themen 2
M bufferedreader loop stoppen Java Basics - Anfänger-Themen 2
HoloYoitsu BufferedReader verhält sich seltsam Java Basics - Anfänger-Themen 10
I BufferedReader Text-Datei einlesen??? Java Basics - Anfänger-Themen 1
J Scanner & BufferedReader Java Basics - Anfänger-Themen 3
D Hilfe bei FileReader und BufferedReader Java Basics - Anfänger-Themen 2
V Fehlerhafte BufferedReader/switch Benutzung? Java Basics - Anfänger-Themen 2
L 2x BufferedReader in einem Programm Java Basics - Anfänger-Themen 1
K Einlesen einer txt von BufferedReader klappt nicht wie gewünscht Java Basics - Anfänger-Themen 12
N BufferedReader Java Basics - Anfänger-Themen 19
N Erste Zeile bei BufferedReader doppelt lesen? Java Basics - Anfänger-Themen 2
P Interpreter-Fehler Probleme mit java.io.BufferedReader Java Basics - Anfänger-Themen 6
B Input/Output Benutzereingabe mit BufferedReader Java Basics - Anfänger-Themen 7
B Erste Schritte BufferedReader mag nicht so recht Java Basics - Anfänger-Themen 4
B Input/Output Probleme mit BufferedReader Java Basics - Anfänger-Themen 4
J BufferedReader in Integer konvertieren Java Basics - Anfänger-Themen 7
T Input/Output StructuredFileReader extends BufferedReader Java Basics - Anfänger-Themen 6
P BufferedReader - als String[] speichern ? Java Basics - Anfänger-Themen 5
H Problem mit Regex in Verbindung mit BufferedReader Java Basics - Anfänger-Themen 4
J InputStreamReader + BufferedReader - keine Eingabemöglichkeit Java Basics - Anfänger-Themen 10
G Hilfe bei BufferedReader Java Basics - Anfänger-Themen 4
A Methoden BufferedReader durchzählen dann lesen Java Basics - Anfänger-Themen 11
T BufferedReader mehrere Zeilen einlesen Java Basics - Anfänger-Themen 4
S Erste Schritte Frage bezüglich "BufferedReader" Java Basics - Anfänger-Themen 3
A BufferedReader mit geöffneter Datei Java Basics - Anfänger-Themen 4
M Eigener InputStream will nicht mit BufferedReader Java Basics - Anfänger-Themen 3
H BufferedReader Zeilenauslesen & verwenden Java Basics - Anfänger-Themen 4
S BufferedReader liest was anderes als BufferedWriter schreibt Java Basics - Anfänger-Themen 5
F Eingabe von Ganzen Zahlen oder Strings mit BufferedReader Java Basics - Anfänger-Themen 10
D BufferedReader und .split() Java Basics - Anfänger-Themen 3
C BufferedReader Java Basics - Anfänger-Themen 5
C Datentypen BufferedReader Java Basics - Anfänger-Themen 6
c_sidi90 BufferedReader Benzinverbrauch Java Basics - Anfänger-Themen 7
Antoras Datei laden mit BufferedReader sehr langsam Java Basics - Anfänger-Themen 7
J Bufferedreader nich von anfang an. Java Basics - Anfänger-Themen 14
M Position des BufferedReader Java Basics - Anfänger-Themen 6
J Socket - BufferedReader lese Problem Java Basics - Anfänger-Themen 2
U BufferedReader - mark Java Basics - Anfänger-Themen 6
Hamstinator Frage zu BufferedReader/FileReader Java Basics - Anfänger-Themen 4
K BufferedReader/Writer trotz Cache? Java Basics - Anfänger-Themen 9
MEETyA Zeilenumbrüche fehlen nach BufferedReader Java Basics - Anfänger-Themen 3
S BufferedReader in Methode übergeben Java Basics - Anfänger-Themen 2
C BufferedReader und FileWrite Java Basics - Anfänger-Themen 2
G Frage zu BufferedReader readline() Java Basics - Anfänger-Themen 3
M BufferedReader.readline() Unix/Windows Zeilenumbruch Java Basics - Anfänger-Themen 4
K zwei Funktionen, ein BufferedReader? Java Basics - Anfänger-Themen 8
K BufferedReader im Konstruktor // guter Stil ? Java Basics - Anfänger-Themen 2
hdi FileReader / BufferedReader langsam? Java Basics - Anfänger-Themen 3
N BufferedReader Verständnisproblem Java Basics - Anfänger-Themen 12
M Problem mit BufferedReader. Java Basics - Anfänger-Themen 10
N Probleme mit dem BufferedReader Seitenquelltext auszulesen Java Basics - Anfänger-Themen 6
G BufferedReader Problem Java Basics - Anfänger-Themen 5
G Probleme mit BufferedReader Java Basics - Anfänger-Themen 6
E Was ließt der BufferedReader eigentlich ein? Java Basics - Anfänger-Themen 3
N Problem mit BufferedReader und close() Java Basics - Anfänger-Themen 6
T NullPointerException bei BufferedReader Java Basics - Anfänger-Themen 4
G bufferedReader -> String[] Java Basics - Anfänger-Themen 8
J NullPointerException BufferedReader.readLine() Java Basics - Anfänger-Themen 4
S java.io.* BufferedReader to String Java Basics - Anfänger-Themen 12
T BufferedReader oder Prozess, wer hängt sich auf? Java Basics - Anfänger-Themen 6
J bufferedReader liest zu wenig daten ein Java Basics - Anfänger-Themen 6
G BufferedReader Problem Java Basics - Anfänger-Themen 10
W Bestimmten Pfad im BufferedReader Java Basics - Anfänger-Themen 4
P BufferedReader / FileReader Key und Values Java Basics - Anfänger-Themen 7
K FileReader BufferedReader & Arrays Java Basics - Anfänger-Themen 14
G BufferedReader - split-Methode Java Basics - Anfänger-Themen 6
G Bufferedreader Java Basics - Anfänger-Themen 11
B BufferedReader für Char? Java Basics - Anfänger-Themen 6
K BufferedReader & BufferedWriter Java Basics - Anfänger-Themen 6
G BufferedReader Java Basics - Anfänger-Themen 6
V BufferedReader dann zusammenzählen Java Basics - Anfänger-Themen 3
G Hashset verknüpfen mit BufferedReader Java Basics - Anfänger-Themen 18
S BufferedReader (JFileChooser) Java Basics - Anfänger-Themen 2
P Komisches Verhalten von BufferedReader und readLine() Java Basics - Anfänger-Themen 2
R Probleme mit Bufferedreader Java Basics - Anfänger-Themen 11
R frage zur read()-Methode des BufferedReader Java Basics - Anfänger-Themen 2
M mit BufferedReader Zeile lesen Java Basics - Anfänger-Themen 11
L read() (von bufferedReader) abbrechen Java Basics - Anfänger-Themen 5
L unterbrechen von bufferedReader.read() Java Basics - Anfänger-Themen 4
R BufferedReader <-> InputStream Java Basics - Anfänger-Themen 3
G BufferedReader Java Basics - Anfänger-Themen 18
A BufferedReader Java Basics - Anfänger-Themen 6
C BufferedReader und BufferedWriter im Netzwerk Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben