Text einfügen in JTextArea?

Hi,

ich versuche Text, den ich aus einer Collection ermittle in eine JTextArea zu übetragen. Die JTextArea bleibt leider leer, obwohl ich die Textzeilen korrekt ermittle. Hier der entsprechende Methodenteil:

String text = „“;
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
try {
Collection contents = (Collection)acc.getValue();
if (contents.size() > 0) {
Iterator iterator = contents.iterator();
while (iterator.hasNext()) {
text = (String)iterator.next();
pw.println(text);
System.out.println (text);
}
}
} catch (AccessControlException ex){
ex.printStackTrace();
} catch (RoException ex) {
ex.printStackTrace();
}
pw.flush();
ta.setText(sw.toString());

Muß ich der JTExtArea noch ein Modell verpassen?
Der Text um den es sich dabei handelt ist stinknormaler ASCII-Text.
Irgendeine Idee?

Gruß
Achim

Hallo Joachim,

ich habe deinen Code nur unwesentlich verändert, und es hat auf Anhieb funktioniert. Bist du sicher, dass die Collection entsprechende Werte enthält (und sich diese in String casten lassen)?

hier mein Code:

import java.io.\*;
import javax.swing.\*;
import java.util.\*;

public class Test
{
 public static void main(String args[])
 {
 test();
 }

 public static void test()
 {
 JFrame frame = new JFrame();
 JTextArea ta = new JTextArea(20,20);
 frame.getContentPane().add(ta);
 frame.pack();
 frame.show();

 String text = "";
 StringWriter sw = new StringWriter();
 PrintWriter pw = new PrintWriter(sw);
 try 
 {
 Collection contents = new Vector();
 contents.add("abc");
 contents.add("123");
 if (contents.size() \> 0) 
 {
 Iterator iterator = contents.iterator();
 while (iterator.hasNext()) 
 {
 text = (String)iterator.next();
 pw.println(text);
 System.out.println (text);
 }
 }
 } 
 catch (Exception ex)
 {
 ex.printStackTrace();
 } 
 pw.flush();
 ta.setText(sw.toString()); 
 }
}

Hi,

ich versuche Text, den ich aus einer Collection ermittle in
eine JTextArea zu übetragen. Die JTextArea bleibt leider leer,
obwohl ich die Textzeilen korrekt ermittle. Hier der
entsprechende Methodenteil:

Hi Heavy,

Bist du sicher, dass die Collection
entsprechende Werte enthält (und sich diese in String casten
lassen)?

Ja, ich bin sicher. Das Problem scheint auch nicht in diesem Abschnitt zu liegen. Wenn ich die (mir bekannten Ausgabe-)Daten in Deinem Testprogramm einfüge funktioniert auch alles. Mein kleines Programm soll als Schnittstellenroutine innerhalb eines Hauptprogramms laufen, hat demnach kein „main“, stattdessen wird es vom Hauptprogramm über „execute“ aufgerufen. Die betreffenden Daten landen auch in der JTextArea (könnte ich sie sonst mit „System.out.println(ta.getText());“ auf der Console wieder ausgeben?), sie erscheinen bloß leider nicht in der Anzeige.
Im Moment bin ich ziemlich ratlos.

Trotzdem Danke für Deine Hilfe!

Gruß
Joachim

Hallo Joachim,

ich habe deinen Code nur unwesentlich verändert, und es hat
auf Anhieb funktioniert. Bist du sicher, dass die Collection
entsprechende Werte enthält (und sich diese in String casten
lassen)?

Hi Heavy,

Bist du sicher, dass die Collection
entsprechende Werte enthält (und sich diese in String casten
lassen)?

Ja, ich bin sicher. Das Problem scheint auch nicht in diesem
Abschnitt zu liegen. Wenn ich die (mir bekannten
Ausgabe-)Daten in Deinem Testprogramm einfüge funktioniert
auch alles. Mein kleines Programm soll als
Schnittstellenroutine innerhalb eines Hauptprogramms laufen,
hat demnach kein „main“, stattdessen wird es vom Hauptprogramm
über „execute“ aufgerufen. Die betreffenden Daten landen auch
in der JTextArea (könnte ich sie sonst mit
„System.out.println(ta.getText());“ auf der Console wieder
ausgeben?), sie erscheinen bloß leider nicht in der Anzeige.
Im Moment bin ich ziemlich ratlos.

Trotzdem Danke für Deine Hilfe!

Gruß
Joachim

Hallo Joachim,
ein anderer Ansatz hatte mir einmal Probleme bereitet:
Ich hatte die JTextArea mit anderen Komponenten angeordnet, aber der Text wurde nicht angezeigt. Das funktionierte erst, als ich der JTextArea als Ausrichtung CENTER zugewiesen hatte (war vorher WEST oder so).
Ist vielleicht einen Versuch wert.

Gruß,
Harald