Archiv verlassen und diese Seite im Standarddesign anzeigen : [JAVA] JTextArea gibt komische Zeichen aus
Hallo!
Ich hab einen Server und einen Konsolen-Client geschrieben.
Dies funktioniert optimal.
Nun ersetzte ich aber den Konsolen-Client durch einen GUI Client.
In einer JTextArea (--> Swing) werden aber fast nach zufall irgendwo [] (Rechtecke) eingefügt, immer wo anderst.
Hat es in einer Zeile angefangen ist auch der Rest der Zeile durch solche Zeilen ersetzt.
Gibt es dazu ein bekanntes Problem?
Hat jemand eine Idee?
TIA
Tobias
Hi,
von so einem Problem habe ich noch nicht gehört. Bei mir funktioniert es auch.
Kommen die Symbole immer an verschiedenen Stellen, wenn Du das Programm neu startest? Sehr komisch. Hast Du vielleicht ein paar Zeilen Code zum studieren?
peschmae
23-03-2004, 18:39
die Rechtecke tuts manchmal wenns n unbekanntes Zeichen darstellen soll für das es z.B. keines vorrätig hat. Jetzt mal allgemein - nicht speziell mit Java.
z.B. Notepad macht das wenn du versuchst eine Datei mit Unix-Zeilenenden zu öffnen für alle Zeilenenden.
MfG Peschmä
Was sollte dann ausgegeben werden? Bei was für Ausgaben werden die Rechtecke gemacht?
MfG Bischi
Thomas Engelke
24-03-2004, 07:47
Zufällig Hex 0D 0A?
AD!
Original geschrieben von bischi
Was sollte dann ausgegeben werden?
normaler Text aus einem InputStream (direkt)
Original geschrieben von bischi
Bei was für Ausgaben werden die Rechtecke gemacht?
Das scheint der Zufall zu bestimmen...
es kann bei jeder Ausgabe passieren...
peschmae
24-03-2004, 14:06
wenn du den Text speicherst und wieder lädtst sind die Rechtecke also an einem anderen Ort? :confused:
MfG Peschmä
nein, ich speicher nichts.
Ich schicke die _gleiche_ Anfrage noch mal an den Server und die Dinger sind an einem anderen Ort.
ich poste glaub ich einfach mal den Quellcode:
Hier die Methode zum lesen:
public String readFromSocket(String Befehl)
{
String returned = new String();
try {
String s = Befehl + "\r\n\r\n";
out.write(s.getBytes());
//Ausgabe lesen und anzeigen
boolean endFound = false;
while(!endFound)
{
byte[] b = new byte[1024];
int len = in.read(b);
String zwischen = new String(b);
returned = returned + zwischen;
zwischen = null; // Variable löschen
if(returned.endsWith("\r\n\r\nENDFILE"))
{
endFound = true;
}
}
}
catch (Exception e) {
System.err.println(e.toString());
System.exit(1);
}
return returned;
}
hier wird sie aufgerufen:
String cmd = jTextField2.getText();
String antwort = this.conn.output(cmd);
jTextArea1.setText(antwort);
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.