Swing Erst Components, dann Container zeichnen

xehpuk

Top Contributor
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?

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);
	}
}
Ist:
  1. Ebene: Schwarz
  2. Ebene: Weiß
  3. Ebene: Rot
Soll:
  1. Ebene: Schwarz
  2. Ebene: Rot
  3. Ebene: Weiß
 

Marco13

Top Contributor
Kann sein dass man in diesem Fall ausnahmsweise (!) paint überschreiben muss statt paintComponent, und in der überschriebenen Variante dann "paintComponent", paintChildren etc. geeignet auftrufen muss. Besser (sauberer) fände ich aber was in Richtung JLayeredPane, falls das passt....
 

xehpuk

Top Contributor
Danke für den Tipp!

Java:
public void paint(Graphics g) {
	super.paint(g);
	// hier dann das Zeichnen auf der obersten Ebene
}
Das wird mir vorerst reichen. Wenn die Zeit kommt, schaue ich mir dann auch LayeredPanes an. ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Components erscheinen erst bei Änderung des Frames AWT, Swing, JavaFX & SWT 3
H Swing Buttons erst nach Klick sichtbar AWT, Swing, JavaFX & SWT 13
K Swing Buttons erst blinken lassen und dann abfragen, ob sie gedrückt worden sind AWT, Swing, JavaFX & SWT 2
VPChief Buttons Reagieren erst wenn ich Fenster minimiere AWT, Swing, JavaFX & SWT 4
L Komponenten eines Panels werden erst nach Klick darauf angezeigt AWT, Swing, JavaFX & SWT 13
E Warum wird Text im JTextArea erst am Programmende angezeigt ? AWT, Swing, JavaFX & SWT 1
L Swing Komponenten erst nach Resize sichtbar AWT, Swing, JavaFX & SWT 2
L JavaFX Animation, erst zeichnen dann anzeigen AWT, Swing, JavaFX & SWT 4
T JButton wird beim vergrößern des Fensters erst sichtbar AWT, Swing, JavaFX & SWT 4
L JTextField erscheint erst nach Veränderung der Framegröße AWT, Swing, JavaFX & SWT 5
U Swing Inhalt vom Fenster wird erst durch Hovern oder Klicken sichtbar AWT, Swing, JavaFX & SWT 3
P JavaFX Slider soll Value erst ab einer bestimmten Bedinung aendern AWT, Swing, JavaFX & SWT 19
T JButton überlagern sich und werden erst beim Mausscrollen sichtbar AWT, Swing, JavaFX & SWT 2
X JFrame erst nach dem Laden sichtbar stellen AWT, Swing, JavaFX & SWT 8
D JList&JButton erst nach Resize des JFRame sichtbar AWT, Swing, JavaFX & SWT 2
U ToolTip Größenänderung, passt sich erst beim zweiten Mal an AWT, Swing, JavaFX & SWT 6
T Eingabefelder gefüllt erst dann Button klickbar AWT, Swing, JavaFX & SWT 6
R Komponenten werden erst nach maximierung des Frames sichtbar (Linux) AWT, Swing, JavaFX & SWT 5
J 2D-Grafik JPanel wird erst 1-2sek nach start des JFrames angezeigt AWT, Swing, JavaFX & SWT 3
M Anzeige updatet sich erst am Ende des Programms AWT, Swing, JavaFX & SWT 3
J resize - Label bleibt erst schwarz AWT, Swing, JavaFX & SWT 4
V Swing Custom JToggleButton in JTable - Click-Event geht erst beim zweiten Mal AWT, Swing, JavaFX & SWT 7
P ... zeichnet erst im zweiten Anlauf AWT, Swing, JavaFX & SWT 10
L Swing JPanel erscheint erst beim Vergrößern AWT, Swing, JavaFX & SWT 4
R Fensterinhalt erscheint erst, wenn das Fenster verändert wird AWT, Swing, JavaFX & SWT 7
0 JFrame zeigt Inhalt erst nach vergrößern an AWT, Swing, JavaFX & SWT 3
R JPanel wird erst neu gezeichnet nach erneuter auswahl AWT, Swing, JavaFX & SWT 8
F Swing Auf JComboBox-Event erst NACH Auswahl reagieren AWT, Swing, JavaFX & SWT 8
T JSpinner in JTable: Problem beim Auslesen, funktioniert erst beim Zellwechsel AWT, Swing, JavaFX & SWT 7
S (Applets) JProgressBar wird erst am Ende angezeigt AWT, Swing, JavaFX & SWT 13
M LayoutManager Erst layouten, dann zeichnen AWT, Swing, JavaFX & SWT 3
Z JPanel wird erst durch aufziehen des Fensters sichtbar AWT, Swing, JavaFX & SWT 3
F setIcon wird erst nach der methode ausgeführt AWT, Swing, JavaFX & SWT 4
T JTable erst nach Änderung der Spaltenbreite neu zeichnen AWT, Swing, JavaFX & SWT 10
T neuer JFrame öffnet sich erst wenn Methode die dahinerliegt abgeschlossen ist. BUG? AWT, Swing, JavaFX & SWT 4
I Swing Bild wird erst bei manueller Änderung der Fenstergrösse gezeichnet AWT, Swing, JavaFX & SWT 3
F Swing Button reagiert erst beim mehrmaligen Anklicken AWT, Swing, JavaFX & SWT 6
S Swing PopUp oeffnet sich nach der Methode, die erst nach Fensteraufruf gestartet wird AWT, Swing, JavaFX & SWT 3
R JButton -> erst sichtbar nach rollover AWT, Swing, JavaFX & SWT 9
F JButton reagiert erst beim 2 klick AWT, Swing, JavaFX & SWT 8
T JLabel.setText() funktioniert erst nach repaint() etc.? AWT, Swing, JavaFX & SWT 4
S JComboBox in JTable wird erst nach klick angezeigt AWT, Swing, JavaFX & SWT 2
N JFormattedTextField erst Verlassen, wenn Eingabe korrekt AWT, Swing, JavaFX & SWT 6
G Textarea zeigt Text erst am Schluss an AWT, Swing, JavaFX & SWT 2
T JButton wird erst bei mouseover sichtbar AWT, Swing, JavaFX & SWT 2
A Buttons erscheinen erst beim rüberfahren AWT, Swing, JavaFX & SWT 13
G Fenster erst nach Stoppen des Threads anzeigen AWT, Swing, JavaFX & SWT 3
Z Buttons erscheinen erst wenn man mit der Maus drüber geht AWT, Swing, JavaFX & SWT 7
G Elemente erst da wenn mit Maus drüber gefahren bin AWT, Swing, JavaFX & SWT 2
A JTree wird erst nach Klick aktualisiert AWT, Swing, JavaFX & SWT 2
X JTable "geht" erst beim 2.Klick AWT, Swing, JavaFX & SWT 2
G Tabelle aktualisiert sich erst, nachdem man auf sie klickt! AWT, Swing, JavaFX & SWT 4
P JTextArea erst nach Maximierung sichtbar AWT, Swing, JavaFX & SWT 3
T SWT - Inhalt einer Shell erst nach Größenänderung vorhanden AWT, Swing, JavaFX & SWT 5
B JPanel erst durch Button-Klick sichtbar machen AWT, Swing, JavaFX & SWT 8
M Java mit Swing - Elemente erst nach klick sichtbar AWT, Swing, JavaFX & SWT 13
C JPanel erst nach Button click anzeigen. AWT, Swing, JavaFX & SWT 11
A Panelinhalt erscheint erst nach Mouseklick auf den Framerand AWT, Swing, JavaFX & SWT 6
B Fensterinhalt baut sich erst bei Größenveränderung auf AWT, Swing, JavaFX & SWT 3
T JSlider getValue() erst nach dem Loslassen des Mauszeigers AWT, Swing, JavaFX & SWT 3
M GUI mit Swing erst nach Maximieren richtige Anzeige AWT, Swing, JavaFX & SWT 2
M componenten im jframe erst nach fensterveränderung sichtbar AWT, Swing, JavaFX & SWT 2
J JTable Änderung erst beim Zeilenwechsel AWT, Swing, JavaFX & SWT 5
S [JTable] Editor erst nach Doppelklick AWT, Swing, JavaFX & SWT 5
S LaF - switcht erst während des Runs auf System.LaF AWT, Swing, JavaFX & SWT 2
N JPanel zeichnet Inhalt erst nach Größenänderung des JFrames AWT, Swing, JavaFX & SWT 3
M LookAndFeel? Erst beim 2.Mal Öffnen eines Menüs? AWT, Swing, JavaFX & SWT 3
M Panels werden erst beim max. oder min. des Fensters sichtbar AWT, Swing, JavaFX & SWT 2
MiMa JavaFX Runtime components are Missing??? AWT, Swing, JavaFX & SWT 3
F JavaFX JavaFX Builden: JavaFX Runtime components are missing AWT, Swing, JavaFX & SWT 0
K Swing JScrollPane wird nicht angezeigt wenn man Components darstellt. AWT, Swing, JavaFX & SWT 2
K JDialog zeigt Components nicht an AWT, Swing, JavaFX & SWT 3
X Alle Components eines JPanels Enablen AWT, Swing, JavaFX & SWT 7
A Swing Liste von komplexen Components AWT, Swing, JavaFX & SWT 2
I LayoutManager CardLayout mit anonymen Components AWT, Swing, JavaFX & SWT 4
J remove() components bei event von JComboBox AWT, Swing, JavaFX & SWT 2
M Special design of Swing components AWT, Swing, JavaFX & SWT 14
hdi dynamische Iteration über Components AWT, Swing, JavaFX & SWT 3
V components nordwest alignen AWT, Swing, JavaFX & SWT 4
P Components überlagern AWT, Swing, JavaFX & SWT 8
B HTML in Swing Components (JLabel) AWT, Swing, JavaFX & SWT 7
S 2 components & 1 button AWT, Swing, JavaFX & SWT 4
hdi Fenster mit variablen Components AWT, Swing, JavaFX & SWT 3
M icons für die java.swing components wie jbutton etc AWT, Swing, JavaFX & SWT 5
K Components auf Codeebene vor reverse engineering schützen? AWT, Swing, JavaFX & SWT 16
K Layout - Components richtig setzen AWT, Swing, JavaFX & SWT 9
G fullscreen GUI - eigene components? AWT, Swing, JavaFX & SWT 2
G Components form AWT, Swing, JavaFX & SWT 3
P Components updaten AWT, Swing, JavaFX & SWT 2
masta // thomas GridBagLayout - Zwischenraum zw. Components AWT, Swing, JavaFX & SWT 7
G components unbeweglich machen AWT, Swing, JavaFX & SWT 3
conan2 getFontMetrics() außerhalb des Components AWT, Swing, JavaFX & SWT 7
F Components aneinander AWT, Swing, JavaFX & SWT 2
W Components Focus mit TAB-Taste VERTIKAL bewegen AWT, Swing, JavaFX & SWT 4
V Zugriff auf Components aus einem ActionListener AWT, Swing, JavaFX & SWT 3
W JTable und mehrere Components in einer Zelle AWT, Swing, JavaFX & SWT 4
meez Striche rund um Components AWT, Swing, JavaFX & SWT 6
A Components in einer ArrayList aus anderer Klasse speichern AWT, Swing, JavaFX & SWT 8
K MouseEvents vor den Components abfangen? AWT, Swing, JavaFX & SWT 4
K Warum genau hat man einen Listener, dann ein Event und was ist ein Adapter AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben