Frage: JDesktopPane, Hintergundbild und ausrichtung

Besucher

Grünschnabel
Hallo Leute.

Da ich neu in Java bin hätte ich eine Frage bezüglich JDesktopPane und einbinden eines Hintergrundbildes. Der JDesktopPane befindet sich in einem Split.

Ich würde gern das Hintergrundbild immer zentriert haben und den Background weiss
auch wenn jemand die Fenstergröße mit dem Spilt ändert.

Kann man das Irgendwie einfach anstellen?

Code:
backgroundPicture = new ImageIcon("_Images/background.gif");
		
deskUnten = new JDesktopPane() { 
	protected void paintComponent(Graphics g) {
		super.paintComponent(g);
        	g.drawImage(backgroundPicture.getImage(), 0, 0, this);
	}
};

splitVertikal.add(deskUnten,JSplitPane.RIGHT);
 

Anhänge

  • java-app.jpg
    java-app.jpg
    21,8 KB · Aufrufe: 75
Funktioniert das so? Ich hatte nie mit einem gespaltenen Frame zu tun... aber irgendwie musst du auch dort die Clipping Area abfragen können.

Code:
            protected void paintComponent(Graphics g) {

                super.paintComponent(g);
                Rectangle r = g.getClip().getBounds();
                g.drawImage(icon.getImage(), ((r.width / 2) - (icon.getIconWidth() / 2)), ((r.height / 2) - (icon.getIconHeight() / 2)), null);
            }
 
Ja, hab das Problem gerade bemerkt. Das Problem ergibt sich aus "g.getBounds()" ... gibt es nämlich ein Tochterfenster, liefert diese Methode die Bounds vom Tochterfenster zurück... deshalb wird das Bild völlig deplaziert. Ich habe es gelöst indem ich die getBounds() Methode vom JFrame aufrufe. Aber ich weiß nicht wie dein Programm strukturiert ist... Vielleicht findest du auch eine andere Möglichkeit, um an die Größe der clipping Area zu kommen, aber halt die des Hauptfensters.

Code:
            protected void paintComponent(Graphics g) {

                super.paintComponent(g);
                Rectangle r = getBounds();
                g.drawImage(icon.getImage(), ((r.width / 2) - (icon.getIconWidth() / 2)), ((r.height / 2) - (icon.getIconHeight() / 2)), null);
            }
 
Zurück