javaanfänger Geschrieben 24. Juni 2002 Geschrieben 24. Juni 2002 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? Zitieren
Jaraz Geschrieben 24. Juni 2002 Geschrieben 24. Juni 2002 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 Zitieren
LoCal Geschrieben 24. Juni 2002 Geschrieben 24. Juni 2002 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")); Zitieren
Jaraz Geschrieben 24. Juni 2002 Geschrieben 24. Juni 2002 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 Zitieren
javaanfänger Geschrieben 25. Juni 2002 Autor Geschrieben 25. Juni 2002 Sorry aber mit euer hilfe funktioniert es auch nicht irgendetwas ist falsch. Zitieren
Jaraz Geschrieben 25. Juni 2002 Geschrieben 25. Juni 2002 Müssen wir jetzt in unsere Kristallkugeln schauen, um zu erfahren was falsch sein soll? Die einzelnen Funktionen können natürlich Exceptions wie FileNotFoundException werfen, die du abfangen musst. Das Beispiel funktioniert 100%ig. Gruß Jaraz Zitieren
javaanfänger Geschrieben 25. Juni 2002 Autor Geschrieben 25. Juni 2002 sorry ich wollte keinem zunahe treten. Zitieren
Jaraz Geschrieben 25. Juni 2002 Geschrieben 25. Juni 2002 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 Zitieren
javaanfänger Geschrieben 25. Juni 2002 Autor Geschrieben 25. Juni 2002 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 Zitieren
Jaraz Geschrieben 25. Juni 2002 Geschrieben 25. Juni 2002 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 Zitieren
LoCal Geschrieben 25. Juni 2002 Geschrieben 25. Juni 2002 Original geschrieben von javaanfänger Sorry aber mit euer hilfe funktioniert es auch nicht irgendetwas ist falsch. Moin, was für ein Fehler kommt denn? Zitieren
Empfohlene Beiträge
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.