JPanel Hintergrundbilder

fetcher

Mitglied
Hallo liebes Forum,
ich habe ein Problem mit den Hintergrundbildern auf einen JPanel. Auf klick von Button1 soll ein Hintergrundbild angezeigt werden. Alle weiteren Elemente darüber(Labels, Buttons).

Bei klick von Button2 soll ein anderes Hintergrundbild angezeigt werden mit anderen Labels und Buttons.

Dazu habe ich im Netz auch schon ein Beispiel gefunden, weis aber nicht wie ich meine Anwendung umbauen soll um das zum laufen zu bringen.

Das lauffähige Beispiel ausn Netz:
Java:
package Paket;

import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.beans.Visibility;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class JBackgroundPanel extends JPanel{

	private BufferedImage img;
	
	public JBackgroundPanel() {
	    // load the background image
	    try {
	      img = ImageIO.read(new File("./bin/bgBild1.jpg"));
	    } catch(IOException e) {
	    	System.out.print("bild nicht gefunden");
	      //e.printStackTrace();
	    }
	  }
	
	@Override
	  protected void paintComponent(Graphics g) {
	    super.paintComponent(g);
	    // paint the background image and scale it to fill the entire space
	    g.drawImage(img, 0, 0, getWidth(), getHeight(), this);
	  }
	
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		JBackgroundPanel bgPanel = new JBackgroundPanel();
		
		
		// add some elements...
		bgPanel.add(new JLabel("Applications don't have to look boring!"));
		bgPanel.add(new JComboBox(new String[] {"Background 1", "Background 2"}));
		bgPanel.add(new JButton("True"));
		
		// create a window
		JFrame f = new JFrame("JPanel with background image");
		
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setSize(500, 250);
		f.setLocationRelativeTo(null);
		
		// add the panel with the background image
		f.add(bgPanel);
		 
		// show the window
		f.setVisible(true);
		
	}

}


Jetzt zu meiner Anwendung. Beim starten wird die Methode "contentPane.add(contentPanel1(), "test");" aufgerufen.
contentPanel1() liefert einen JPanel zurück. In der Methode contentPanel1, soll nun das Hintergrundbild gebaut und angezeigt werden. Komme aber leider nicht weiter :-(

Java:
package Paket;

import javax.swing.*;

import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.*;




public class MainGUI extends JFrame{

	private static final long serialVersionUID = 1L;
	private JButton btn1, btn2; 
	private JPanel contentPane;
	

	
	actionListener al = new actionListener();
	MenuActionListener ma = new MenuActionListener();
	
	public MainGUI(){
		super("TEST");
		
		contentPane = new JPanel();
		contentPane.setLayout(new CardLayout());
	
		
		
		contentPane.add(contentPanel1(), "test");
		contentPane.add(contentPanel2(), "test2");
				
		
		setContentPane(contentPane);
		pack();
		
		
	}
	
	
	public JPanel contentPanel1()
	{
		JPanel panel = new JPanel();
		// Hier Hintergrundbild bauen/einbinden

		JLabel lbltest = new JLabel("adasdsa234");
		btn1 = new JButton("asdasdas");
		
		btn1.addActionListener(al);
		
		panel.add(btn1);
		
		panel.add(lbltest);
		panel.setBackground(Color.cyan);
		
		
		return panel;
	}
	
	
	public JPanel contentPanel2()
	{
		JPanel panel = new JPanel();
		// Hier anderen Hintergrundbild
		btn2 = new JButton("zurück");
		btn2.addActionListener(al);
		panel.add(btn2);
		panel.setBackground(Color.BLUE);
		 
		return panel;
	}
	
	
	/************************************** Actions here ******************************************/
	public class actionListener implements ActionListener{
		
		
		@Override
		public void actionPerformed(ActionEvent e) {
			CardLayout layout = (CardLayout) getContentPane().getLayout();
			
			JButton src = (JButton) e.getSource();
			if(src.equals(btn1))
			{
				
				layout.show(contentPane, "test2");
				
			}
			
			if(src.equals(btn2))
			{
				layout.show(contentPane, "test");
			}
			
			
		}
		
	}
	
	class MenuActionListener implements ActionListener {
	  public void actionPerformed(ActionEvent e) {
		  
	 
		  if(e.getActionCommand()=="Beenden")
		  {
			  System.out.print("exit");
			  System.exit(0);
		  }
		

	  }
	}
	
	
	
	public static void main(String[] args){
		new MainGUI().setVisible(true);
	}
	

}


Ich hoffe es kann mir jemand helfen. Vielen Dank dafür.
Gruß
fetcher
 

fetcher

Mitglied
Hallo, habs nun geschafft nach langem hin und her probieren.

Java:
	public JPanel contentPanel1()
	{
		JPanel panel = new JPanel(){
			@Override
            public void paintComponent(Graphics g) {
                super.paintComponent(g);
                g.drawImage(backgroundImage, 0, 0, null);
            }

            @Override
            public Dimension getPreferredSize() {
                return new Dimension(
                    backgroundImage.getWidth(null),
                    backgroundImage.getHeight(null));
            }
			
		};
		
		
		JLabel lbltest = new JLabel("adasdsa234");
		btn1 = new JButton("asdasdas");
		//btn1.setPreferredSize(new Dimension(150,50));
		btn1.addActionListener(al);
		
		panel.add(btn1);
		
		panel.add(lbltest);
		
		return panel;
	}

:)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Y Bild in JPanel setzen Allgemeine Java-Themen 2
Y Wie kann ich ein erstelltes JPanel meinem Frame hinzufügen? Allgemeine Java-Themen 1
G JPanel lädt nicht?! Allgemeine Java-Themen 20
D JPanel in Mail darstellen Allgemeine Java-Themen 30
T Drucken von JPanel Allgemeine Java-Themen 4
Sin137 OOP Auf JPanel zugreifen, das einem JTabbePane hinzugefügt worden ist Allgemeine Java-Themen 10
M Threads JPanel eingeforen mit Threads Allgemeine Java-Themen 2
C Position speichern von verschiebbaren Elementen auf JPanel Allgemeine Java-Themen 3
I JPanel soll sich dem JFrame anpassen Allgemeine Java-Themen 1
S OOP JFrame als Observer eines JPanel Allgemeine Java-Themen 3
S JPanel einfügen in MainClass Allgemeine Java-Themen 4
S JLabel auf JPanel Allgemeine Java-Themen 10
G JPanel in JFrame Allgemeine Java-Themen 9
DStrohma Swing Nicht möglich für ein JPanel den Fokus zu bekommen? Allgemeine Java-Themen 9
S Swing JPanel werden nicht angezeigt Allgemeine Java-Themen 6
T iText Dokument in DB und dann in ein JPanel Allgemeine Java-Themen 5
P JPanel - JFrame Allgemeine Java-Themen 6
B JScrollPane und JPanel: Scrollen nur nach Größe des JPanels Allgemeine Java-Themen 2
Z Dynamisches JPanel Allgemeine Java-Themen 10
J Arbeiten mit Punkten in einem JPanel Allgemeine Java-Themen 3
H JPanel direkt in PDF umwandeln Allgemeine Java-Themen 2
L JPanel schraffiert,contour oder sonst was? Allgemeine Java-Themen 3
G Componenten auf JPanel disablen Allgemeine Java-Themen 3
MQue Raster auf einem JPanel Allgemeine Java-Themen 8
S Lässt sich eigne JPanel Klasse in ein Array "stecken&qu Allgemeine Java-Themen 5
M JTable verändert Position auf meinem JPanel Allgemeine Java-Themen 3
T JPanel to Image? Allgemeine Java-Themen 6
MQue JPanel Allgemeine Java-Themen 8
P JPanel/Zoom Allgemeine Java-Themen 2
M Neues JPanel in JFrame einbinden Allgemeine Java-Themen 6
L JPanel(bzw.) Panels transparent machen Allgemeine Java-Themen 7
T Allgemeinklasse zu JPanel, JButton. Allgemeine Java-Themen 26
P JPanel in JPanel Allgemeine Java-Themen 3
P Browser in JPanel Allgemeine Java-Themen 3
MQue Komponenten einem JPanel hinzufügen Allgemeine Java-Themen 9
MQue JButton zu JPanel hinzufügen Allgemeine Java-Themen 7
P Image auf JPanel auf JFrame Allgemeine Java-Themen 3
P JPanel in JFrame Allgemeine Java-Themen 2
E Pixelweise auf einem JPanel/JLabel o.ä. zeichnen Allgemeine Java-Themen 4
M IExplorer in einen JPanel öffnen und kontrollieren? Allgemeine Java-Themen 9
F While(true)-Schleife im JPanel Allgemeine Java-Themen 9
M ContentPane und JPanel Allgemeine Java-Themen 8
T JApplet - JEditorPane gegen JPanel tauschen Allgemeine Java-Themen 2
S JPanel zur Laufzeit verbergen bzw. wieder anzeigen lassen Allgemeine Java-Themen 4
G JComboBox mit aufklappbarem JPanel? Allgemeine Java-Themen 13
G Aus JPanel Image Hohlen Allgemeine Java-Themen 3
G JPanel auto scrollen Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben