Ich will ein abgewandeltes JPanel und darunter einen Button in einem JFrame platzieren. Im Panel will ich was einzeichnen lassen. Dazu habe ich folgende Testklasse geschrieben:
Beim Ausführen zeigen sich zwar das Panel und der Button, aber irgendwie wird das Image nicht eingezeichnet. Hat jemand ne Idee, woran es liegt? Danke schonmal.
Java:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class WindowTest1 extends JFrame {
CPanel panel1;
JButton button1;
BufferedImage img;
public WindowTest1 () {
this.setLayout(null);
this.setSize(300, 500);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setResizable(false);
panel1 = new CPanel();
this.getContentPane().add(panel1);
panel1.setLayout(null);
panel1.setBackground(Color.WHITE);
panel1.setBounds(50, 50, 200, 300);
img = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = img.createGraphics();
g2.setPaint(Color.WHITE);
g2.fillRect(0,0, img.getWidth(), img.getHeight());
g2.setPaint(Color.RED);
g2.drawLine(0,0,100,100);
panel1.paintComponent(g2);
button1 = new JButton("ClickMe");
this.getContentPane().add(button1);
button1.setBounds(50, 400, 100, 50);
this.setVisible(true);
}
public class CPanel extends JPanel {
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
g2.drawImage(img, 50, 50, img.getWidth(), img.getHeight(), Color.WHITE, null);
}
}
public static void main (String[] args) {
new WindowTest1();
}
}
Beim Ausführen zeigen sich zwar das Panel und der Button, aber irgendwie wird das Image nicht eingezeichnet. Hat jemand ne Idee, woran es liegt? Danke schonmal.