Hey!
Ich habe ein JPanel und möchte, dass erst der Hintergrund des JPanels, dann die Komponenten, die im JPanel liegen, und schließlich restliche Malarbeiten des JPanels gezeichnet werden. Wie stell ich das an?
Ist:
Ich habe ein JPanel und möchte, dass erst der Hintergrund des JPanels, dann die Komponenten, die im JPanel liegen, und schließlich restliche Malarbeiten des JPanels gezeichnet werden. Wie stell ich das an?
Java:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class PaintChildrenFirst extends JFrame {
public PaintChildrenFirst() {
final JPanel panel = new JPanel() {
private final int rect = 20;
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.WHITE);
g.fillRect(getWidth() / 2 - rect / 2, getHeight() / 2 - rect / 2, rect, rect);
}
};
panel.setBackground(Color.BLACK);
final JPanel subPanel = new JPanel();
subPanel.setBackground(Color.RED);
panel.add(subPanel, BorderLayout.CENTER);
getContentPane().add(panel);
setSize(0, 75);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new PaintChildrenFirst().setVisible(true);
}
}
- Ebene: Schwarz
- Ebene: Weiß
- Ebene: Rot
- Ebene: Schwarz
- Ebene: Rot
- Ebene: Weiß