jTextArea aktualisieren

KarlPichler

Mitglied
Hallo wieder mal,

Frage:
Habe eine zweidimensionalles Array welches ich in einer TextArea ausgeben möchte. Soweit so gut, beim ersten mal auch kein Problem.

Beim ändern des Array sollte sich natürklich auch die TextArea mitändern. Wie geht das?

Main Programm:

Java:
   public final void initUI() {
        jTASections = new JTextArea();
        jTASections.setBounds(600, 160, 190, 150);
        jTASections.setVisible(true);
        ....
        add(jTASections);
 }

paint:

Java:
public void paint(Graphics g) {
            for(int ii= 0; ii< 30; ii++)
            {   Test5.jTASections.setText(Test5.jTASections.getText() +  "\n\r");
                for(int jj = 0; jj< 6; jj++)
                {
                    Test5.jTASections.setText(Test5.jTASections.getText() + sectionsInt[ii][jj] + " ");
                }
            }
}

die paintmethode verändert das array. --> durch das ausführen der paintmethode sollte die TextArea sich ändern.

Vorschläge?

Danke
 
Hi,
ja ich hätte da einen Vorschlag. Warum überschreibst du denn JTextArea Inhalt nicht einfach, sobald du deinen Text in der paint (Warum eigentlich in der Paint-Methode?) geändert hast.

Gruß

Fabio
 
ja die paint methode wird immer aufgerufen falls sich etwas ändert, und deshalb möchte ich auch das Array in der paintmethode mitändern.

ja das array wird eh überschrieben, aber wie aktualisiere ich dieses? gibt es sowas wie refresh()?

danke vorerst
 
Wenn du Swing nutzt, solltest du auf keinen Fall die paint()-Methode überschreiben, sondern paintComponent() !
Außerdem hat dein Code in der paint()-Methode nichts zu suchen! So etwas löst man mit Timer oder SwingWorker (oder ähnlichem) nebenläufig, aber niemals im Event-Dispatch-Thread!

es gibt repaint(), das zum synchronen Aufruf der paint() bzw. paintComponent()-Methode führt
und revalidate(), das auch z.B. veränderte Größe oder hinzugefügte komponenten berücksichtigt.
 

Neue Beiträge

Zurück