# Text in JPanel hinzufügen



## pzypher (6. Jul 2012)

Hallo,

Das folgende Programm funktioniert soweit:
Hab aber eine Verständnisfrage: Wann/von wem wird hier irgendwann die Methode paint aufgerufen?


```
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Textframe extends JPanel {

  public void paint(Graphics g) {
    Dimension d = this.getPreferredSize();
    int fontSize = 20;

    g.setFont(new Font("TimesRoman", Font.PLAIN, fontSize));
     
    g.setColor(Color.red);
    
    g.drawString("Testtext", 10, 20);
  }

  public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.getContentPane().add(new Textframe());

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(1024,768);
    frame.setVisible(true);
  }
}
```

Danke


----------



## Michael... (6. Jul 2012)

Gründsätzlich würde ich mir angewöhnen bei Swing Komponenten die paintComponent statt die paint Methode zu überschreiben.

Wer die Methode aufruft, ist für's Programmieren eigentlich uninteressant - außer dass man die Methode in seinem Programm i.d.R nicht selbst aufrufen sollte.
Die Methode wird systemseitig aufgerufen, sobald die Komponente sichtbar, in der Größe verändert oder anderweitig "beschädigt" wird.


----------



## bERt0r (6. Jul 2012)

> Wann/von wem wird hier irgendwann die Methode paint aufgerufen?


Das wann kannst du ganz leicht herausfinden wenn du in deine paint Methode zu Testzwecken mal ein System.out.println("Ich zeichne"); reinschreibst. Dann vergrößer/verkleiner mal dein Fenster ein bisschen und staune


----------

