PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [JAVA] JTextArea gibt komische Zeichen aus



Tyset
23-03-2004, 16:29
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

Sym
23-03-2004, 16:49
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ä

bischi
23-03-2004, 21:11
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!

Tyset
24-03-2004, 12:17
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ä

Tyset
24-03-2004, 14:27
nein, ich speicher nichts.
Ich schicke die _gleiche_ Anfrage noch mal an den Server und die Dinger sind an einem anderen Ort.

Tyset
25-03-2004, 16:01
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);