# GUI mit Hintergrundbild



## .Domii (26. Mai 2011)

Ich komm gleich mal zur Sache:
ICh möchte in meinem Programm mit Hilfe dem Netbeans IDE 7.0 Designer ein Hintergrundbild einfügen.
Das jedoch nicht statisch sondern das der Benutzer dieses Hintergrundbild beliebig ändern kann (JDialog). Das 2. (JDialog) hab ich schon gefunden aber ich bekomme kein Bild in den Hintergrund... ???:L

Danke schonmal für eure Hilfe!

.Domii


----------



## Volvagia (26. Mai 2011)

Such hier mal ein wenig, das kommt ca. 1 mal die Woche.
Um nur die Datei auszuwählen reicht ein JFileChooser.


----------



## .Domii (26. Mai 2011)

Ich habe mich jetzt einige Zeit durchs Forum gewühlt und bin leider zu keinem wirklich guten Theard gekommen der beschreibt/erklärt ob und wie man mit dem Netbeans Designer ein Hintergrundbild direkt einbindet...

Vllt fällt euch was ein ob das geht?

Mfg
.Domii


----------



## Asgar13 (26. Mai 2011)

Wäre ein Button mit den Event


```
setBackgroundImage(new Image("bild.jpg"));
```
(Code muss nicht zu 100% stimmen)

möglich?


----------



## Volvagia (26. Mai 2011)

Ein Label auf das Window legen. Keine Ahnung ob das mit den Designer auch geht, aber am Besten bindet man das Label direkt als ContentPane ein.


----------



## .Domii (26. Mai 2011)

Ein Butten leider nicht.
Aber es wäre doch möglich das ich genau das direkt beim Konstruktor der GUI reinpacke?


----------



## Asgar13 (26. Mai 2011)

Wie soll der Benutzer dann das Hintergrundbild verändern?
In Konstruktor kannst du es natürlich packen.


----------



## .Domii (26. Mai 2011)

Das würde ich durch eine Menuleiste / Menuitem einen jDialog starten.

Oke mit SetBackground kann ich nur Color. einsetzen aber keine Iamges/Picutres. Gibt es da noch eine andere Methode?

mfg

.Domii


----------



## Asgar13 (26. Mai 2011)

ok, in Java SWT gibt es das.

Für Swing habe ich das gefunden:
Panel with background image : PanelSwing JFCJava


----------



## Volvagia (26. Mai 2011)

Warum verwendest du kein JLabel und addest alle anderen Componenten darauf?


----------



## .Domii (26. Mai 2011)

Danke @Asgar13 werd mich jetzt damit auseinander setzten und die Lösung hier posten!


----------



## L-ectron-X (28. Mai 2011)

Volvagia hat gesagt.:


> Warum verwendest du kein JLabel und addest alle anderen Componenten darauf?


So was geht doch gar nicht. Ein JLabel kann keine Komponente aufnehmen. Wenn eine oder mehrere Komponenten aufgenommen/dargestellt werden müssen, ist immer ein JPanel notwendig.


----------



## Volvagia (29. Mai 2011)

Doch, klar.


```
import java.awt.FlowLayout;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;

public class AddLabel extends JFrame
{
	public AddLabel()
	{
		super();
		
		JLabel background = new JLabel(new ImageIcon("java.png"));
		background.setLayout(new FlowLayout());
	
		background.add(new JLabel("Java"));
		background.add(new JLabel("rockt!!!"));
	    
		setContentPane(background);
	}
	public static void main(String[] args)
	{
		SwingUtilities.invokeLater(new Runnable() {
			public void run()
			{
				JFrame frame = new AddLabel();
				frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				frame.pack();
				frame.setVisible(true);
			}
		});
	}
}
```


----------



## L-ectron-X (29. Mai 2011)

Jetzt bin ich platt. Dann habe ich was Neues dazu gelernt.
Ich war bis heute der festen Überzeugung, man könne JLabels keine Komponenten hinzufügen.


----------

