Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hi,

ich habe eine Frage.

Wie kann ich aus einem Textdatei Wörter auslesen die dann in eine JComboBox geschrieben werden?

Textdatei sieht wie folgt aus:

-----------

Wort1

Wort2

Wort3

----------

Die 3 Wörter will ich nun in der JCombobox haben.

Kann mir bitte einer von euch eine kurze Lösung schicken?

Geschrieben

Hallo,


Vector comboDaten = new Vector();

FileReader fr = new FileReader("name_der_datei");

BufferedReader br = new BufferedReader(fr);

String line = br.readLine();

while (line != null) {

   comboDaten.add(line);

   line = br.readLine();

}

br.close();

fr.close();

JComboBox combo = new JComboBox(comboDaten);

Gruß Jaraz

Geschrieben
Original geschrieben von Jaraz

Hallo,



Vector comboDaten = new Vector();

FileReader fr = new FileReader("name_der_datei");

BufferedReader br = new BufferedReader(fr);

String line = br.readLine();

while (line != null) {

   comboDaten.add(line);

   line = br.readLine();

}

br.close();

fr.close();

JComboBox combo = new JComboBox(comboDaten);

Gruß Jaraz
In so weit richtig, aber ich hätte da dochmal ne frage:

FileReader fr = new FileReader("name_der_datei");

BufferedReader br = new BufferedReader(fr);

String line = br.readLine();

while (line != null) {

   comboDaten.add(line);

   line = br.readLine();

}

deine ausleseschleife ausleseschleife sollte evtl. besser so aussehen.

String line;

while((line=br.readLine())!=null) {

   comboDaten.add(line);

}

Das hat nämlich den Vorteil, daß Du keinen Ärger bekommst wenn Du zufällig ne komplett leere Datei ausliest. Mehr Geschmacksache ist die FileReader/BufferedReader Zeile, die kriegt mensch nämlich auch in eine Zeile

BufferedReader br = new BufferedReader(new FileReader("name_der_datei"));

Geschrieben
Das hat nämlich den Vorteil, daß Du keinen Ärger bekommst wenn Du zufällig ne komplett leere Datei ausliest.

Nö, es hat keinen Vorteil, da die beiden Schreibweisen dasselbe machen. Auch bei einer leeren Datei.

Mehr Geschmacksache ist die FileReader/BufferedReader Zeile, die kriegt mensch nämlich auch in eine Zeile

Ich hatte, da es sich um eine Anfängerfrage handelt, den Code Extra ausgeschrieben, damit er die einzelnen Schritte nachvollziehen kann.

Natürlich kann man das kürzer schreiben, allerdings passiert im Hintergrund dasselbe.

Übrigens geht es auch so:


Vector comboDaten = new Vector();

BufferedReader br = new BufferedReader(new FileReader("test.txt"));

String line;

while((line=br.readLine())!=null) comboDaten.add(line);

br.close();

JComboBox combo = new JComboBox(comboDaten);

Gruß Jaraz

Geschrieben

Müssen wir jetzt in unsere Kristallkugeln schauen, um zu erfahren was falsch sein soll? :D

Die einzelnen Funktionen können natürlich Exceptions wie FileNotFoundException werfen, die du abfangen musst.

Das Beispiel funktioniert 100%ig.

Gruß Jaraz

Geschrieben
Original geschrieben von javaanfänger

sorry ich wollte keinem zunahe treten.

Anscheinend kann dein Browser keine Smilys darstellen...

Wir wollen dir hier nur helfen, aber wenn du einfach in den Raum wirfst das das was wir dir raten nicht funktioniert, ohne zu sagen was denn nun nicht funktioniert, dann kann zumindest ich, dir nicht weiterhelfen.

Gruß Jaraz

Geschrieben

ich weiß es schon selber nicht mehr was funktioniert und was nicht funktioniert. Das Probelm ist das ich habe von der Arbeit aus eine Aufgabe bekommen die ich morgen gelöst haben soll. Aber leider kann ich Java nicht gut genug dafür ich lerne es nämlich erst seit einem Monat. Und ich will heute keine Überstunden machen da ich noch wo hin muss deshalb bin ich ein bißchen gereizt. Sorry

Geschrieben

OK, nichtaufgeben. Dann wollen wir mal zusehen, dass du bis 13:30 Uhr fertig bist.

Hier nun ein komplettes lauffähiges Beispiel.

Denk dran, die beiden Dateien genauso wie den Klassennamen benennen. Also Application.java und Frame1.java.


import java.awt.*;


public class Application {

  boolean packFrame = false;


  //Construct the application

  public Application() {

    //Build Main Application Frame

    Frame1 frame = new Frame1();

    frame.setVisible(true);

  }

  //Main method

  public static void main(String[] args) {

    new Application();

  }

}


import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.io.*;

import java.util.*;


public class Frame1 extends JFrame {

  JPanel contentPane;

  Vector comboDaten;

  BufferedReader br;

  JComboBox combo;


  //Construct the frame

  public Frame1() {

    enableEvents(AWTEvent.WINDOW_EVENT_MASK);

    try {

      jbInit();

    }

    catch(Exception e) {

      e.printStackTrace();

    }

  }


  //Component initialization

  private void jbInit() throws Exception  {

    //Read Combo Data

    comboDaten = new Vector();

    br = new BufferedReader(new FileReader("c:/daten.txt"));

    String line = br.readLine();

    while (line != null) {

      comboDaten.add(line);

      line = br.readLine();

    }

    br.close();


    //Fill Combo

    combo = new JComboBox(comboDaten);


    contentPane = (JPanel) this.getContentPane();

    contentPane.setLayout(new FlowLayout());


    //Add Combo to Panel

    contentPane.add(combo);

    this.setSize(new Dimension(400, 300));

    this.setTitle("Combo Beispiel");

  }

  //Overridden so we can exit when window is closed

  protected void processWindowEvent(WindowEvent e) {

    super.processWindowEvent(e);

    if (e.getID() == WindowEvent.WINDOW_CLOSING) {

      System.exit(0);

    }

  }

}

Die Datei daten.txt legst du unter c:/ an, oder du änderst den Pfad im Source Code.

Gruß Jaraz

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...