kann nicht auf meine JTextArea zugreifen

ZAntjeZ

Mitglied
Hallo,
ich habe ein mir unerklärliches Problem:

in einer "Fensterklasse" lege ich mir eine JTextArea an, in die ich später etwas schreiben möchte (automatisch mit append):

Hier der Konstruktor:
Code:
		textfeld=new JTextArea();
		textfeld.setLineWrap(true);
		//textfeld.setSize(150,100);
		textfeld.setBackground(Color.WHITE);
		textfeld.setFont(new Font("SansSerif",Font.PLAIN,15));
		textfeld.append("im Konstruktor");
		//this.setTextfeld(textfeld);
		
		scrollPane=new JScrollPane();
		scrollPane.getViewport().add(textfeld,null);
		getContentPane().add(scrollPane,BorderLayout.CENTER);

nun möchte ich aus einer anderen Klasse heraus in einer ActionPerformed auf das Textfeld erneut zugreifen:

Code:
algFenster.getTextfeld().append("in ActionPeformed Sequence");

aber genau das geht nicht. Der String in der letzen Append()-Anweisung wird nicht ausgeführt.
Was ist der Grund dafür? Das Append im Konstruktor geht noch.

Wer kann mir helfen?
 
Moin,
da hilft wohl nur Debuggen. Wenn das getTextFeld() das richtige JTextField zurückliefert, fehlt evtl. einfach nur ein repaint() oder so?!
 
es kommen ja "leider" keine Fehler, denen ich nachgehen koennte. Es wird einfach nur nix angezeigt. Repaint() habe ich schon probiert. Der Code direkt davor und danach wird ausgeführt, also kann ich sicher sein, dass der Compiler da drüber stolpert, aber eben ohne Fehler. Das ist ja das große Rätsel. Ich habe auch statt setText(), append() probiert, oder direkt auf das textfeld (ohne getTextfeld() ) zugegriffen, nichts davon hat geholfen. :confused:
 
Hallo Antje,

bist Du Dir sicher, dass die actionPrformed() Methode in Deinem Listener aufgerufen wird? Mach am besten ein paar Ausgaben, etwa so:
Code:
public void actionPerformed(ActionEvent e) {
    JTextArea textField = algFenster.getTextfeld();
    System.out.println("text before: " + textField.getText());
    textField.append("in ActionPeformed Sequence");
    System.out.println("text after: " + textField.getText());
}
 
ja, die ActionPerformed wird auf jedenfall ausgeführt, da ich gleich davor und danach Sachen ausgeben lasse, die alle funktionieren.
 

Neue Beiträge

Zurück