Hintergrundbild im jPanel

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,
ich hab glaub mittlerweile jeden Artikel im Forum unter dem Stichwort Hintergrundbilder gelesen aber habs noch nicht verstanden :(
Was ich vorhab ist ein Hintergrundbild in ein jPanel einzufügen. Darüber sollen weitere transparente Panels. Kann mir da wer weiterhelfen. Über ein paar einfache Codeschnipsel würde ich mehr sehr freuen (versteh ich besser als lange erklärungen :) ).
Vielen Dank im vorraus.
 

VdA

Bekanntes Mitglied
ich würd einfach ein bild dadrauf zeichnen und danach die Buttons etc drufpacken.
Dann hast du das bild im Hintergrund
 

Wildcard

Top Contributor
Nimm eine JLayeredPane.
Setz ein JLabel mit ImageIcon in eine der hinteren Ebenen und dann deine Komponenten drüber.
 
G

Guest

Gast
Hab das mal wie folgt versucht zu lösen.
Das bild liegt jetzt auf der LayeredPane.
Die Panels hab ich auf der ContentPane.
Es ist jetzt so geplant das die Panels auf Knopfdruck durchsichtig werden. Daher das Bild im Hintergrund.
Jedoch hab ich jetzt das Problem das die Panels von vornherein nicht zu sehen. Jemand ne Ahnung woran das liegen könnte?

Code:
public class NewJFrame extends javax.swing.JFrame {
	private JLabel jLabel1;
	private JPanel jPanel1;
	private JPanel jPanel2;
	private JLabel icon;

	public static void main(String[] args) {
		NewJFrame inst = new NewJFrame();
		inst.setVisible(true);
	}
	
	public NewJFrame() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			getLayeredPane().setLayout(null);
			this.setIconImage(new ImageIcon(getClass().getClassLoader().getResource("screen2.JPG")).getImage());
			this.setVisible(false);
			{
				icon = new JLabel(new ImageIcon("screen2.JPG"));
				getLayeredPane().add(icon);
				icon.setBounds(0, 0, 483, 350);
			}
			{
				jPanel1 = new JPanel();
				getContentPane().add(jPanel1);
				jPanel1.setBounds(0, 133, 175, 210);
				jPanel1.setBackground(Color.BLUE);
			}
			{
				jPanel2 = new JPanel();
				getContentPane().add(jPanel2);
				jPanel2.setBounds(0, 0, 483, 133);
				jPanel2.setBackground(Color.RED);
			}
			pack();
			this.setSize(491, 377);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}
[/code]
 
G

Guest

Gast
Hab ich auch erst vermutet das es was damit zu tun hat.
Hilft aber nichts :(
Fehler muß woanders liegen
 

Wildcard

Top Contributor
Anstatt die eine LayerdPane vom Frame zu holen erstell dir mal eine eigene.
In die fügst du (unter expliziter Angabe einer eben) deine Komponenten ein und addest dann die JLayeredPane auf die ContentPane.
 

Wildcard

Top Contributor
in etwa so:
Code:
JLayeredPane pane = new JLayeredPane();
JPanel panel = new JPanel();
JLabel picture = new JLabel(new ImageIcon(image.gif))M
panel.setBackground...
panel.setOpaque(true);
pane.add(picture,JLayeredPane.PALETTE_LAYER);
pane.add(panel,JLayeredPane.MODAL_LAYER);
getContentPane().add(pane);
 
G

Guest

Gast
Vielleicht liegt es ja an mir aber irgendwie hat sich nichts verändert
 
G

Guest

Gast
Das komische ist die Vorschau vom GUI Builder zeigt es eigentlich richtig an
 

Wildcard

Top Contributor
Hier mal ein Beispiel:
Ein Bild wird hinter dem Panel angezeigt.
Setzt du jetzt das Panel auf opaque(false), dann ist nur der Button und das Bild zu sehen.
Beim klick auf den Button wird das Panel unsichtbar.
Code:
public class Layers extends JFrame
{
    public Layers()
    {
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        JLayeredPane pane = new JLayeredPane();
        pane.setLayout(null);
        pane.setPreferredSize(new Dimension(500,500));
        final JPanel panel = new JPanel(new FlowLayout());
        panel.setSize(new Dimension(500,500));
        panel.setOpaque(true);
        JLabel picture = new JLabel(new ImageIcon("image.jpg"));
        picture.setSize(new Dimension(500,500));
        JButton button = new JButton("unsichtbar");
        button.addActionListener(new ActionListener()
        {
        
            public void actionPerformed(ActionEvent e)
            {
                panel.setVisible(false);
        
            }
        
        }); 
        panel.add(button);
        setLayout(new FlowLayout());
        pane.setLayer(picture,JLayeredPane.DEFAULT_LAYER);
        pane.setLayer(panel,JLayeredPane.MODAL_LAYER);
        pane.add(picture);
        pane.add(panel);
        add(pane);
        pack();
    }
    
    public static void main(String[] args)
    {
        new Layers().setVisible(true);
    }
}
 
G

Guest

Gast
Komisch
wenn ich das Programm ausführe passiert das gleiche wie bei meinem programm.
Der Button wird erst sichtbar wenn ich mit der Maus drüber fahre.
Das Panel ist aber so oder so unsichtbar. Auch wenn ich mit setBackground eine Farbe bestimme.
Hat das bei dir anders ausgesehen?
 

Wildcard

Top Contributor
Du meinst exakt dieser Quelltext funktioniert bei dir nicht? :shock:
Welches OS und welche Java Version?
Screenshot währe auch noch ganz nett...
 
G

Guest

Gast
Hab gerade Probleme die Screenshots hochzuladen :(
Aber ist recht einfach zu beschreiben. Wenn ich das Programm starte seh ich nur das Hintergrundbild. Wenn ich mit dem Mauszeiger dahin fahre wo der Button seien sollte wird dieser sichtbar, nicht aber das panel. Wenn ich auf den Button klicke verschwindet dieser.
Benutze Eclipse 3.1.1
 
G

Guest

Gast
Windows XP
Java Version 1.5.0 <---Wenn ich nicht an der falschen stellen geschaut hab
 

Wildcard

Top Contributor
Und du hast wirklich diesen Quelltext unverändert übernommen? ???:L
Sorry, ich kann's mir zZ einfach nicht vorstellen warum das bei dir nicht funktionieren sollte.
 
G

Guest

Gast
Also eine Sache mußte ich ändern. UNd zwar haben die beiden Zeilen:


pane.setLayer(picture,JLayeredPane.DEFAULT_LAYER);
pane.setLayer(panel,JLayeredPane.MODAL_LAYER);

:roll: [/code]
 
G

Gast

Gast
Mit ging es auch nicht da immer ein Fehler angezeigt wurde. Und da die Fehlerhilfe nich geholfen hat.....
 
G

Gast

Gast
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The method setLayer(Component, int) in the type JLayeredPane is not applicable for the arguments (JLabel, Integer)
The method setLayer(Component, int) in the type JLayeredPane is not applicable for the arguments (JPanel, Integer)

at Win.NewJFrame2.<init>(NewJFrame2.java:60)
at Win.NewJFrame2.main(NewJFrame2.java:70)
 

Wildcard

Top Contributor
In Eclipse ist bei dir wohl nicht 1.5 als Compilance Level eingestellt.
Du kannst da aber auch irgenwelche ints reinpacken...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Elyt JPanel als HintergrundBild Java Basics - Anfänger-Themen 7
Haubitze_Broese Hintergrundbild im JPanel? Java Basics - Anfänger-Themen 2
T Hintergrundbild im JPanel Java Basics - Anfänger-Themen 7
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
J Bild auf Hintergrundbild zeichnen Java Basics - Anfänger-Themen 5
S JFrame mit Hintergrundbild und Button Java Basics - Anfänger-Themen 4
CptK Hintergrundbild Java Basics - Anfänger-Themen 2
K Java JFrame mit Hintergrundbild erstellen Java Basics - Anfänger-Themen 1
P Hintergrundbild in Swing einfügen Java Basics - Anfänger-Themen 3
A Benötige GUI Objekt für Hintergrundbild Java Basics - Anfänger-Themen 3
K Erste Schritte GUI - Hintergrundbild und darauf Buttons Java Basics - Anfänger-Themen 2
D java jbuttons auf dem Hintergrundbild Java Basics - Anfänger-Themen 11
M Hintergrundbild für JButton Java Basics - Anfänger-Themen 6
S Swing, Panel über Hintergrundbild!! Java Basics - Anfänger-Themen 6
Fab1 Buttons auf ein Hintergrundbild(JFrame) setzen Java Basics - Anfänger-Themen 24
J [JAVA] Bild in jar einbinden (Hintergrundbild)? Java Basics - Anfänger-Themen 8
D GUI mit Hintergrundbild Java Basics - Anfänger-Themen 13
H Hintergrundbild auf JFrame Java Basics - Anfänger-Themen 10
H Hintergrundbild Java Basics - Anfänger-Themen 8
W Button ausrichten / Hintergrundbild Java Basics - Anfänger-Themen 9
D Hintergrundbild einfügen Java Basics - Anfänger-Themen 4
C Hintergrundbild im JFrame skalieren Java Basics - Anfänger-Themen 2
hdi Hintergrundbild in JFrame, die hunderste ;) Java Basics - Anfänger-Themen 43
A Problem mit Hintergrundbild in Applet Java Basics - Anfänger-Themen 2
G Hintergrundbild Java Basics - Anfänger-Themen 7
G Hintergrundbild mit sensitiven Bereichen Java Basics - Anfänger-Themen 2
G Hintergrundbild in Frame Java Basics - Anfänger-Themen 15
T Button Hintergrundbild machen ? Java Basics - Anfänger-Themen 19
G Hintergrundbild mit Transparentem Label Java Basics - Anfänger-Themen 5
D Windows Hintergrundbild ändern? Java Basics - Anfänger-Themen 5
J Problem mit Hintergrundbild Java Basics - Anfänger-Themen 13
K striche die sich auf dem hintergrundbild bewegen Java Basics - Anfänger-Themen 10
S Problem mit Hintergrundbild Java Basics - Anfänger-Themen 8
W Hintergrundbild im JFrame Java Basics - Anfänger-Themen 4
D Hintergrundbild nur in der Entwicklungsumgebung sichtbar Java Basics - Anfänger-Themen 8
B JLabel auf Hintergrundbild Java Basics - Anfänger-Themen 9
richis-fragen Optisch JPanel BorderLayout vertikaler Rand dicker als horizontaler Rand Java Basics - Anfänger-Themen 4
N Klassen Hintergrundfarbe in JPanel ändert sich nicht Java Basics - Anfänger-Themen 3
J JSON mit einem JPanel Java Basics - Anfänger-Themen 3
J Ein mit UI-Designer erstelltes JPanel einblenden Java Basics - Anfänger-Themen 0
J Eine theoretische Frage zur Praxis - JPanel oder Canvas Java Basics - Anfänger-Themen 5
J Beim Start des Programms zB. eine Linie in JPanel ausgeben Java Basics - Anfänger-Themen 4
C mehrere JPanel in ein JFrame bringen Java Basics - Anfänger-Themen 9
M HILFE JPanel - Graphics Java Basics - Anfänger-Themen 1
B Scrollbares Fenster (JScrollPane) mit JPanel scrollt nicht Java Basics - Anfänger-Themen 3
Zeppi JPanel responsive Grid Java Basics - Anfänger-Themen 0
J JPanel in JScrollPanel Java Basics - Anfänger-Themen 4
W 2 JPanel in einem JFrame Java Basics - Anfänger-Themen 4
B Wie kann man an ein JPanel eine Scrollbar anheften? Java Basics - Anfänger-Themen 8
O Swing JPanel Java Basics - Anfänger-Themen 4
CptK Klassen JPanel nach Ablauf der Spielzeit neuladen Java Basics - Anfänger-Themen 2
S JPanel wird nicht angezeigt Java Basics - Anfänger-Themen 1
D Animation JPanel Java Basics - Anfänger-Themen 1
M JLabels "verrutschen" beim übergeben von JPanel Java Basics - Anfänger-Themen 2
D Auf angeklicktes JPanel zugreifen Java Basics - Anfänger-Themen 5
D JPanel mehrere Formen zeichnen Java Basics - Anfänger-Themen 5
D JPanel passt die Größe nicht an Java Basics - Anfänger-Themen 22
Y Webinhalt JPanel Java Basics - Anfänger-Themen 6
D Erste Schritte JPanel verschiebt Fenster via setVisible Java Basics - Anfänger-Themen 5
Dechasa Interface JFrame mit mehreren Übereinander liegenden JPanel Java Basics - Anfänger-Themen 5
S JPanel variablenabhängig erstellen Java Basics - Anfänger-Themen 13
J Methoden Dinge auf einem JPanel paltzieren Java Basics - Anfänger-Themen 1
Z JPanel wird zweimal hinterinander gezeichnet.. Wieso? Java Basics - Anfänger-Themen 4
F JFrame resize verschiebt JPanel Java Basics - Anfänger-Themen 3
A altes JPanel entfernen und neues öffnen Java Basics - Anfänger-Themen 5
I A0-Format in jpanel anzeigen Java Basics - Anfänger-Themen 1
R NullPointerException wegen JPanel oder doch nicht ? Java Basics - Anfänger-Themen 7
J Probleme mit eigenem JPanel (IDE Eclipse) Java Basics - Anfänger-Themen 4
S JPanel wird versetzt auf JFrame gelegt Java Basics - Anfänger-Themen 2
V jab ich eclipse verrückt gemacht :D ? array Jpanel, Jlabel Grafik Fehler / Frage Java Basics - Anfänger-Themen 5
R Focus auf JPanel im Thread Java Basics - Anfänger-Themen 9
I Problem mit JPanel Java Basics - Anfänger-Themen 0
B JPanel ändert die Hintergrundfarbe nicht Java Basics - Anfänger-Themen 2
F Threads funktionieren auf JPanel nicht Java Basics - Anfänger-Themen 1
C JPanel in MessageDialog Java Basics - Anfänger-Themen 1
B JPanel/JFrame in ein Applet umwandeln (Webfähig) Java Basics - Anfänger-Themen 7
S Inhalt von JPanel erst nach Resize sichtbar Java Basics - Anfänger-Themen 2
M Listener einerm JPanel hinzufuegen Java Basics - Anfänger-Themen 3
gamebreiti Methoden JPanel nach clearAll() und add neu zeichnen Java Basics - Anfänger-Themen 1
S vom JPanel aus durch Mouselistener Internet aufrufen Java Basics - Anfänger-Themen 6
Z JPanel bleibt leer Java Basics - Anfänger-Themen 2
E Bild per Verzeichnis/JFileChooser auf JPanel laden Java Basics - Anfänger-Themen 13
Q JPanel Java Basics - Anfänger-Themen 2
K Erste Schritte jpanel in einer klasse auslagern Java Basics - Anfänger-Themen 3
I Anfängerfrage JPanel repaint() Java Basics - Anfänger-Themen 6
N String auf JPanel bewegen Java Basics - Anfänger-Themen 6
K Erste Schritte Jframe Im Jpanel Java Basics - Anfänger-Themen 4
S Layout mit JPanel in JScrollPanel funktioniert nicht Java Basics - Anfänger-Themen 3
S JPanel drucken -> PrinterException Java Basics - Anfänger-Themen 2
B JPanel -JTable Java Basics - Anfänger-Themen 2
H JPanel Hintergrund transparent setzen? Java Basics - Anfänger-Themen 10
A Input/Output Hashmap in einem JPanel via JList anzeigen Java Basics - Anfänger-Themen 8
L zoomen aus jpanel Java Basics - Anfänger-Themen 7
P Bekomme in meinen JPanel nur eine JComponente angezeigt Java Basics - Anfänger-Themen 7
A Methoden repaint() zeichnet JPanel falsch Java Basics - Anfänger-Themen 3
R JFrame über einen JPanel Java Basics - Anfänger-Themen 5
I Veränderungen am JPanel vom JDialog aus Java Basics - Anfänger-Themen 6
F JPanel zu klein Java Basics - Anfänger-Themen 5
D GUI - Objekte in JPanel nach oben schieben Java Basics - Anfänger-Themen 2
S JPanel wird nicht eingefügt Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben