Einbinden von generierten Graphics in JFrame?

Angiii

Erfahrenes Mitglied
Hallo,

ich will mit Hilfe der paint(Graphics g) ein einfaches Testbild zeichnen, das Balken in den Farben rot/grün/blau/etc. enthält . Dieses Testbild will ich von meinen Java-Applet aus öffnen können (das Testbild soll später mal im Vollbildmodus angezeigt werden). Aber bereits bei einfachen Codebespielen scheitere ich an der paint Function.

Im Moment nutze ich folgendes einfaches Beispiel:
Code:
public class Draw extends Applet {
     public void init() { 
      ///
     } 
   
    public void paint(Graphics g) { 
        // Rotes Rechteck zeichnen 
        g.setColor (Color.RED); 
        g.fillRect (10, 10, 400, 150); 
    } 
}

Zentrales Element ist die Funktion paint(Graphics g) die ein einfaches Rechteck zeichnet. Die Funktion wird anscheindend automatisch aufgerufen, wenn das Applet gestartet wird. Ich will aber kein extra Applet in meinem Programm, sondern das Ganze in meine bestehende Umgebung (JFrame mit diversen Sliders und Buttons) einbinden. Ich hatte mir vorgestellt, dass das genauso funktioniert wie das einbinden eines normalen JPEGs mit JLabel. Aber anscheindend hatte ich mich getäuscht.

Weiß jemand Rat? Danke schonmal!
 
Hallo,

wenn ich dich richtig verstanden habe, willst du auf einem JPanel was zeichnen, was dann innerhalb eines JFrame o.ä. auf dem Bildschirm angezeigt wird, oder?

Um dies zu erreichen mache ich mir immer eine extra Klasse, welche von JComponent erbt. Diese stellt dann die Methode
Java:
protected void paintComponent(Graphics g) {
}
zur Verfügung. Diese kannst du dann wie die paint(Graphics)-Methode bei Applets verwenden.

Diese neue Klasse kannst du dann ähnlich einem JPanel über die add(Component)-Methode einem bestehenden Container hinzufügen.

Gruß
BK

// Edit: Finde den genauen Link, wo ich das mal gefunden habe nicht mehr. Aber hier wird es ähnlich beschrieben, wie ich das oben gemacht habe.
 
Zuletzt bearbeitet:
Bingo, genau das hab ich gesucht. Funktioniert einwandrei. Ich frage mich wieso die Grahpics-Funktion so seltsam umgesetzt wurde. Vielen Dank Bratkartoffel!
 
Zurück