Ich habe mit drawImage() in ein JFrame ein Bild gemalt. Im JFrame befinden sich aber auch Buttons; diese werden aber durch das Bild verdeckt, was kann man dagegen tun?
Hallo Peter,
Ich habe mit drawImage() in ein JFrame ein Bild gemalt. Im
JFrame befinden sich aber auch Buttons; diese werden aber
durch das Bild verdeckt, was kann man dagegen tun?
Ich vermute mal, dass Du von JFrame die paint Methode überladen hast.
Das ganze wird vermutlich wie folgt aussehen:
public void paint(Graphics g) {
super.paint(g);
g.drawImage(...);
}
Nun werrden aber durch super.paint(g) die Subkomponenten gezeichnet. Danach übermalst Du das ganze mit Deinem Bild.
Daher mußt Du zwischen das Zeichnen des Hintergrundes und vor das Zeichnen der Subkomponenten (Deine Buttons, …) kommen.
Das erreichst Du durch überladen der Methode paintComponents aus java.awt.Container.
Folgendes (ungetestete) Code-Snippet sollte also Dein Problem lösen:
final Image img = ...;
JFrame f = new JFrame() {
public void paintComponents(Graphics g) {
g.drawImage(img, 0, 0, this.getBackground(), this);
super.paintComponents(g);
}
};
Gruß,
Frank