JTextPane.getText() funktioniert nicht

Extremefall

Bekanntes Mitglied
Hallo,
ich habe eine ArrayList, die aus den Zeilen einer Textdatei besteht. Das Auslesen und alles klappt auch super, nur wenn ich das ganze in einem JTextPane ausgeben will, wird nur der letzte Wert ausgeben. Ich habe dann versucht, mit getText den vorherigen Text abzurufen und so immer zu erweitern, was nicht funktionierte.
Java:
try 
		    { 
		      RandomAccessFile stunden; 
		      RandomAccessFile fach;
		      stunden = new RandomAccessFile( "stunden.txt", "r" ); 
		      fach = new RandomAccessFile( "fach.txt", "r");
		      for ( String line; (line=stunden.readLine()) != null; ) {
		    ArrayList<String> fachlist = new ArrayList<String>();
		    fachlist.add(fach.readLine());
		      ArrayList<String> stundenlist = new ArrayList<String>();
		      stundenlist.add(line);
		      int counter =0; 
		      counter++;
		      for(int i = 0; i < stundenlist.size(); i++) {
				    	jTextPane1 = new JTextPane();
				    	if (i==0){
				    	jTextPane1.setText(stundenlist.get(i));
				    	}
				    	if (i!=0){
				    	jTextPane1.setText(jTextPane1.getText()+ stundenlist.get(i));
				    	}
		    	}
		      }
Es wird also nur der letzte Werte ausgeben. Wie kann man das Problem beheben?
 

Suinos

Bekanntes Mitglied
Java:
jTextPane1 = new JTextPane();

Du erzeugst in der Schleife bei jedem Durchgang ein neues Objekt, welches natürlich keinen Text hat.
 

Extremefall

Bekanntes Mitglied
Stimmt. Danke, ist mir gar nicht aufgefallen. Da gehört es nun mal wirklich nicht hin. Danke

Edit: Leider ist der Fehler noch nicht behoben. Worin könnte das Problem sonst wohl bestehen?
 
Zuletzt bearbeitet:

jgh

Top Contributor
Ihr macht es allen leicher, wenn ihr ein KSKB postet!!!

Bei dir sollte es schon langen, die Zeile 15 vor Beginn der For-Schleife aufzurufen.

edit: to late :(
 

Extremefall

Bekanntes Mitglied
Leider funktioniert es immer noch nicht. Ich habe es nun am Anfang des Programms stehen, aber daran scheint es nicht zu liegen.

Hier noch mein Code dafür:
Java:
try 
		    { 
		      RandomAccessFile stunden; 
		      RandomAccessFile fach;
		      stunden = new RandomAccessFile( "stunden.txt", "r" ); 
		      fach = new RandomAccessFile( "fach.txt", "r");
		      for ( String line; (line=stunden.readLine()) != null; ) {
		    ArrayList<String> fachlist = new ArrayList<String>();
		    fachlist.add(fach.readLine());
		      ArrayList<String> stundenlist = new ArrayList<String>();
		      stundenlist.add(line);
		      int counter =0; 
		      counter++;
		      for(int i = 0; i < stundenlist.size(); i++) {
				    	if (i==0){
				    	jTextPane1.setText(stundenlist.get(i));
				    	}
				    	if (i!=0){
				    	jTextPane1.setText(jTextPane1.getText()+ stundenlist.get(i));
				    	}
		    	}
		      
		      }
		    }
		    catch ( FileNotFoundException e ) {
		      System.err.println( "Datei gibt’s nicht!" ); 
		    }
		    catch ( IOException e ) {
		      System.err.println( "Schreib-/Leseprobleme!" ); 
		    }

		   
			{
				jTextPane2 = new JTextPane();
				jTextPane2.setText("kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk");
			}
 
Zuletzt bearbeitet:
F

Fr33z3m4n

Gast
Hi,

das liegt daran, dass du in der schleife nach i=0 abfragst, bei jeder neuen Zeile ist dieses aber der fall, da du die schleife immer von neu beginnst.

Bsp.:

TextDatei enthält 2 Zeilen:
For(1 Zeile) {
for(StundenlisteAusZeile1) {
wenn erster Durchlauf, nimm Textpane und setzeText auf xx:
wenn nicht erster Durchlauf, nimm Textpane und füge den Text hinzu.
}
}

For(2 Zeile) {
for(StundenlisteAusZeile2) {
wenn erster Durchlauf, nimm Textpane und setzeText auf xx:
wenn nicht erster Durchlauf, nimm Textpane und füge den Text hinzu.
}
}

In der Textpane hast du nun also nur den Durchlauf von StundenlisteAusZeile2
Hoffe du hast verstanden, was ich damit meinte.
 

jgh

Top Contributor
hört sich sinnig an.

Mit einem StringBuilder kannst du dir die Abfrage(ob i=0 ) schenken:

Java:
StringBuilder sb = new StringBuilder();
for(int i = 0; i < stundenlist.size(); i++) {
                      sb.append(stundenlist.get(i));
                }
jTextPane1.setText(sb.toString());
 

Extremefall

Bekanntes Mitglied
Hi,

das liegt daran, dass du in der schleife nach i=0 abfragst, bei jeder neuen Zeile ist dieses aber der fall, da du die schleife immer von neu beginnst.

Bsp.:

TextDatei enthält 2 Zeilen:
For(1 Zeile) {
for(StundenlisteAusZeile1) {
wenn erster Durchlauf, nimm Textpane und setzeText auf xx:
wenn nicht erster Durchlauf, nimm Textpane und füge den Text hinzu.
}
}

For(2 Zeile) {
for(StundenlisteAusZeile2) {
wenn erster Durchlauf, nimm Textpane und setzeText auf xx:
wenn nicht erster Durchlauf, nimm Textpane und füge den Text hinzu.
}
}

In der Textpane hast du nun also nur den Durchlauf von StundenlisteAusZeile2
Hoffe du hast verstanden, was ich damit meinte.
Ich kann dir gerade nicht folgen: Meinst du mit der Abfrage den Teil der For-Schleife. Wenn ja, dort wird ja nur i mit dem Startwert 0 festgelegt und bei jedem weiteren Durchlauf hochgezählt. Oder meinst du i==0? Ich weiß leider gerade nicht, was du damit genau meinst. Könntest du mir weiterhelfen? MFG

Edit: Der Tipp mit dem StringBuilder scheint nicht zu funktionieren, es bleibt beim letzten Wert.
 

Suinos

Bekanntes Mitglied
Anders gesagt:

Deine
Code:
stundenlist
enthält immer nur die aktuelle Linie.
Am Besten entfernst du die ganze zweite Schleife und setzt den Text einfach auf
Code:
alten Text + gelesene Linie
.

--

Deine Formatierung ist übrigens schrecklich.
Mit einer guten Darstellung hättest du den Logikfehler schnell gefunden.
 

Fr33z3m4n

Mitglied
OK, mal ein wenig ausholen ^^

Vor dieser schleife, hast du deine Textpane initialisiert, sie ist sogar noch leer.
Code:
for ( String line; (line=stunden.readLine()) != null; ) {
            ArrayList<String> fachlist = new ArrayList<String>();
            fachlist.add(fach.readLine());
              ArrayList<String> stundenlist = new ArrayList<String>();
              stundenlist.add(line);
              int counter =0; 
              counter++;
              for(int i = 0; i < stundenlist.size(); i++) {
                        if (i==0){
                        jTextPane1.setText(stundenlist.get(i));
                        }
                        if (i!=0){
                        jTextPane1.setText(jTextPane1.getText()+ stundenlist.get(i));
                        }
                }
              
              }
Code:
for ( String line; (line=stunden.readLine()) != null; ) {
wird so oft durchlaufen, wie Zeilen in deiner TXT vorhanden sind.

Code:
 for(int i = 0; i < stundenlist.size(); i++) {
                        if (i==0){
                        jTextPane1.setText(stundenlist.get(i));
                        }
                        if (i!=0){
                        jTextPane1.setText(jTextPane1.getText()+ stundenlist.get(i));
                        }
                }
Wir bleiben jetzt mal bei Zeile 1 deiner TXT.


HMMM MOM, ich hab mir deinen Code gerade nochmal genauer angeschaut, verschieb mal eine EndSchleife

Code:
try 
            { 
              RandomAccessFile stunden; 
              RandomAccessFile fach;
              stunden = new RandomAccessFile( "stunden.txt", "r" ); 
              fach = new RandomAccessFile( "fach.txt", "r");
              for ( String line; (line=stunden.readLine()) != null; ) {
            ArrayList<String> fachlist = new ArrayList<String>();
            fachlist.add(fach.readLine());
              ArrayList<String> stundenlist = new ArrayList<String>();
              stundenlist.add(line);
              int counter =0; 
              counter++;
}
              for(int i = 0; i < stundenlist.size(); i++) {
                        if (i==0){
                        jTextPane1.setText(stundenlist.get(i));
                        }
                        if (i!=0){
                        jTextPane1.setText(jTextPane1.getText()+ stundenlist.get(i));
                        }
                }
            }
            catch ( FileNotFoundException e ) {
              System.err.println( "Datei gibt’s nicht!" ); 
            }
            catch ( IOException e ) {
              System.err.println( "Schreib-/Leseprobleme!" ); 
            }
 
           
            {
                jTextPane2 = new JTextPane();
                jTextPane2.setText("kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk");
            }
 

Fr33z3m4n

Mitglied
Soo,

bevor hier noch alles undeutlicher wird ^^
Hatte ej gerade Eclipse auf

Code:
try {
			RandomAccessFile stunden;
			RandomAccessFile fach;
			stunden = new RandomAccessFile("stunden.txt", "r");
			fach = new RandomAccessFile("fach.txt", "r");
			ArrayList<String> fachlist = new ArrayList<String>();
			ArrayList<String> stundenlist = new ArrayList<String>();
			for (String line; (line = stunden.readLine()) != null;) {
				fachlist.add(fach.readLine());
				stundenlist.add(line);
				int counter = 0;
				counter++;
			}
			StringBuilder sb = new StringBuilder();
			for (int i = 0; i < stundenlist.size(); i++) {
				sb.append(stundenlist.get(i));
			}
			jTextPane1.setText(sb.toString());
		} catch (FileNotFoundException e) {
			System.err.println("Datei gibt’s nicht!");
		} catch (IOException e) {
			System.err.println("Schreib-/Leseprobleme!");
		}

		{
			jTextPane2 = new JTextPane();
			jTextPane2.setText("kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk");
		}
 

Extremefall

Bekanntes Mitglied
Bin gerade selbst auf den Logikfehler gekommen. Ich stand gerade echt auf dem Schlauch.

Habe es jetzt mit solch einer For Schleife gelöst:

for(int i = 0; i < 1; i++) {
jTextPane1.setText(jTextPane1.getText()+" "+ stundenlist.get(i));
}
 

Fr33z3m4n

Mitglied
for ( String line; (line=stunden.readLine()) != null; ) {
ArrayList<String> fachlist = new ArrayList<String>();
fachlist.add(fach.readLine());
ArrayList<String> stundenlist = new ArrayList<String>();
Bei deinem Code ist das innerhalb dieser, und wird jedes mal neu erstellt.
In meinem Bsp. hab ich das außerhalb dieser verlagert, damit du auch später auf diese zurückgreifen kannst, ohne nur den letzten Eintrag zu haben.
 


Schreibe deine Antwort... und nutze den </> Button, wenn du Code posten möchtest...
Ähnliche Java Themen
  Titel Forum Antworten Datum
C JTextPane + HTMLEditorKit withe space problem Allgemeine Java-Themen 0
T TextArea, JTextPane, JEditorPane Allgemeine Java-Themen 11
P JTextPane mit Java (eclipse) Syntax Highlighting Allgemeine Java-Themen 4
H JTextPane JPopupMenu anfügen Allgemeine Java-Themen 2
R JTextPane (JEditorPane) ignoriert JScrollPane Allgemeine Java-Themen 5
O java StreamCorrupted Error beim Belegen einer JTextpane Allgemeine Java-Themen 5
Y Zeichen verschiedenfarbig in einer JTextPane darstellen Allgemeine Java-Themen 17
G JTextArea vs JTextPane Allgemeine Java-Themen 2
M Roll Over Effekt bei JTextPane Allgemeine Java-Themen 3
M JTextPane Mausklick auf bestimmte Wörter startet Aktion Allgemeine Java-Themen 8
H JTextPane -- Text anfügen Allgemeine Java-Themen 3
T JEditorPane oder JTextPane Applets und Flash anzeigen Allgemeine Java-Themen 7
P Selenium . getText Problem Allgemeine Java-Themen 9
X getText undefiniert in ActionListener Allgemeine Java-Themen 5
F Eclipse Simpelster Stringvergleich mit getText funktioniert nicht Allgemeine Java-Themen 10
H getText(); bei dynamisch generierten JTextFiled Allgemeine Java-Themen 2
M Runtime.getRuntime().exec(txt_rsync_option.getText()); Allgemeine Java-Themen 12
G WSDL-Aufruf funktioniert nicht mehr nach Umstieg auf Maven Allgemeine Java-Themen 4
Zrebna Berechnung der Zeit funktioniert nicht wie erwartet: Date, GregorianCalendar Allgemeine Java-Themen 16
V Wie funktioniert das Schlüsselwort "final" von Java? Allgemeine Java-Themen 19
M Apache Proxy Weiterleitung auf Tomcat funktioniert nicht wie gewünscht Allgemeine Java-Themen 1
W While Schleife funktioniert nicht ganz Allgemeine Java-Themen 4
H do-while Schleife funktioniert nicht wie ich es möchte Allgemeine Java-Themen 7
ERlK JDA Code funktioniert nicht? Allgemeine Java-Themen 4
B HeapSort für Array of Strings funktioniert nur teilweise Allgemeine Java-Themen 3
stormyark TikTakToe funktioniert nicht Allgemeine Java-Themen 10
T Remove bei ArrayList funktioniert nicht Allgemeine Java-Themen 2
M Map<String,String>funktioniert nicht richtig Allgemeine Java-Themen 4
P String.replace() funktioniert nicht? Allgemeine Java-Themen 3
boschl2000 Springerproblem-Implementierung funktioniert nicht richtig Allgemeine Java-Themen 1
F Getter Methode aufrufen funktioniert nicht Allgemeine Java-Themen 1
N Regulärer Ausdruck funktioniert nicht Allgemeine Java-Themen 6
Lukas2904 Wie funktioniert ein KeyLogger? Allgemeine Java-Themen 3
Tobero Meine Funktion für das beinhalten eines Punktes in einem Kreis funktioniert nicht Allgemeine Java-Themen 5
1Raini Java if-Abfrage funktioniert nicht! Allgemeine Java-Themen 3
Killunox MaxHeap Zuweisung unter Linux funktioniert nicht Allgemeine Java-Themen 1
I Wieso funktioniert das nich? Allgemeine Java-Themen 5
Dann07 MP3 Datei abspielen funktioniert nicht Allgemeine Java-Themen 6
O Aus JAR-Datei erstellte EXE-Datei funktioniert nicht Allgemeine Java-Themen 10
A Mp3 Player funktioniert nicht Allgemeine Java-Themen 0
X JNA funktioniert nicht mehr Allgemeine Java-Themen 4
bueseb84 FolderWatcher mit WatchService funktioniert nur bedingt Allgemeine Java-Themen 5
Drachenbauer Division mit Int funktioniert nicht Allgemeine Java-Themen 3
O docx-Datei erzeugung mit DocXStamper funktioniert nicht Allgemeine Java-Themen 2
F Schleife funktioniert nicht richtig Allgemeine Java-Themen 13
T Split() Methode funktioniert nicht?! Allgemeine Java-Themen 11
L Tesseract-OCR 4.0 unter Linux funktioniert nicht Allgemeine Java-Themen 3
J Wie konkret funktioniert das Modulsystem unter Java 11? Allgemeine Java-Themen 4
J Neuronales Netz funktioniert mal und mal nicht. Allgemeine Java-Themen 3
T Umlaute in Eclipse einlesen funktioniert nicht Allgemeine Java-Themen 16
A Methodenaufruf funktioniert nicht richtig Allgemeine Java-Themen 5
C WindowBuilder Design funktioniert nicht Allgemeine Java-Themen 0
J FTPSClient funktioniert nicht Allgemeine Java-Themen 4
H IDEA IntelliJ Java Mail funktioniert nach Export nicht mehr! Allgemeine Java-Themen 1
M Operatoren Warum funktioniert diese überprüfung nicht? Allgemeine Java-Themen 7
R jar-Datei funktioniert nicht Allgemeine Java-Themen 2
E Open Declaration Funktioniert nicht Allgemeine Java-Themen 0
R Verschlüsselung funktioniert nicht Allgemeine Java-Themen 5
RalleYTN requires transitive funktioniert nicht? Allgemeine Java-Themen 7
R Bruteforce hashes mit multithreading. Funktioniert das so? Allgemeine Java-Themen 0
P Best Practice Wieso funktioniert der Modulo - Operator nicht? Allgemeine Java-Themen 2
HarleyDavidson Eigener PropertyChangeListener funktioniert einfach nicht Allgemeine Java-Themen 3
J Exclude funktioniert nicht Allgemeine Java-Themen 2
K .jar funktioniert nicht vollständig Allgemeine Java-Themen 1
P Java https proxy (-Dhttps.proxyHost) Start-Parameter funktioniert nicht? Allgemeine Java-Themen 2
L Auswertung eines Testes funktioniert nicht Allgemeine Java-Themen 37
O Fahrenheit/Celsius Converter funktioniert nicht Allgemeine Java-Themen 2
M Serialisierung funktioniert nicht Allgemeine Java-Themen 9
D Collections.sort funktioniert nicht in exportierten .class Dateien Allgemeine Java-Themen 10
J Arrays auf gleichheit untersuchen funktioniert nicht Allgemeine Java-Themen 11
P GUI: ArrayList anzeigen funktioniert nicht Allgemeine Java-Themen 5
H Timer funktioniert nicht? Allgemeine Java-Themen 3
R javax.comm --> Programm funktioniert nach Export nicht mehr Allgemeine Java-Themen 0
O Mein JButton Array funktioniert nicht Allgemeine Java-Themen 3
R Erste Schritte Object reference funktioniert nicht. Wie mach ichs richtig? Allgemeine Java-Themen 3
J If Abfrage funktioniert nicht Allgemeine Java-Themen 4
R Objekt funktioniert nicht auf iOS Allgemeine Java-Themen 15
U PersistenceManager.createEntityManager funktioniert nicht Allgemeine Java-Themen 3
D Java Datei nach Eclipse Export funktioniert nicht Allgemeine Java-Themen 0
M Eigene forEach()-Methode funktioniert nicht. Allgemeine Java-Themen 2
H File.listFiles() funktioniert nicht... Allgemeine Java-Themen 10
JG12111989 Auswertung von Fragebogen funktioniert nicht! Allgemeine Java-Themen 7
M Primzahlberechnung funktioniert nicht. Allgemeine Java-Themen 4
A JFreeChart funktioniert nicht :( Allgemeine Java-Themen 6
C file.delete() funktioniert bei zweiten aufruf nicht mehr Allgemeine Java-Themen 3
F Datei einlesen funktioniert nicht Allgemeine Java-Themen 3
A Debugger im Java-Editor funktioniert nicht Allgemeine Java-Themen 5
B DB-Zugriff einer Webanwendung funktioniert nicht mit Java 7 Allgemeine Java-Themen 2
B Web-Anwendung funktioniert mit Java 1.8, aber nicht mit Java 1.7 (auf Client) Allgemeine Java-Themen 5
J Swing Cursor.WAIT funktioniert nicht nach JFileChooser Allgemeine Java-Themen 1
P Wie funktioniert das Feedback eines Klicks auf eine Java GUI Allgemeine Java-Themen 10
F JTextField funktioniert nicht Allgemeine Java-Themen 6
Athena Programm funktioniert nur beim Debugging korrekt, sonst nicht. Allgemeine Java-Themen 1
S CSV Eintrag der nächsten Zeile auslesen funktioniert nicht Allgemeine Java-Themen 8
S Command funktioniert in Kommandzeile aber nicht mit ProcessBuilder bzw. Runtime.exec auf MAC Allgemeine Java-Themen 3
G Verschlüsselungsalgorythmus funktioniert nicht Allgemeine Java-Themen 2
buggy84 Ausführen einer Batch mit Parameterübergabe funktioniert nicht richtig Allgemeine Java-Themen 18
G Befehl funktioniert in Eclipse allerdings nicht in einer Jar-Datei Allgemeine Java-Themen 3
N Werte aus Arrays auslesen funktioniert nicht Allgemeine Java-Themen 5
W getResources funktioniert nur in Eclipse, nicht in JAR Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben