Hintergrundbild in einem Programm

hkx10

Mitglied
Hallo,

ich arbeite im Moment im Rahmen des Informatikunterrichts an einem Java-Projekt und habe folgendes Problem:
Ich möchte in meinem Fenster ein Hintergrundbild anzeigen, weiß jedoch nicht wie ich das realisieren soll. Ich habe bereits viele Beiträge im Internet zu diesem Thema gefunden, jedoch hat mir keiner davon wirklich geholfen. Mein Code sieht wie folgt aus (Die Zeilen, auf die ich mich beziehe, sind kursiv geschrieben):


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Hauptprogramm extends Frame
{
private AmpelWindowListener aWL = new AmpelWindowListener();
private AmpelActionListener aAL = new AmpelActionListener();

public MenuBar menu = new MenuBar();
public Menu menuFile = new Menu("Menü");
public MenuItem auto = new MenuItem("Automatisch");
public MenuItem manu = new MenuItem("Manuell");
public MenuItem stop = new MenuItem("Stop");
public MenuItem exit = new MenuItem("Exit");

public JPanel p = new JPanel();
private Panel backgroundPanel = new Panel(new BorderLayout());
JLabel l = new JLabel(new ImageIcon("Pfad der Datei"));
JFrame f = new JFrame();


public void fenster()
{
this.setTitle("Titel");
this.setLayout(null);

f.getContentPane().add(l);
l.setLayout(null);
l.setOpaque(false);
//l.setBounds(0,0,3573,2736);
l.setBounds(0,0,1080,720);
this.p.add(l);
this.backgroundPanel.add(p);


this.addWindowListener(aWL);
this.menuFile.add(auto);
this.menuFile.add(manu);
this.menuFile.add(stop);
this.menuFile.add(exit);
this.menu.add(this.menuFile);
this.setMenuBar(this.menu);
this.auto.addActionListener(aAL);
this.manu.addActionListener(aAL);
this.stop.addActionListener(aAL);
this.exit.addActionListener(aAL);
this.setSize(1080,720);
this.setVisible(true);
}//public void fenster()

public static void main(String argv[])
{
Hauptprogramm h = new Hauptprogramm();
h.fenster();
}//public static void main(String argv[])
}//public class Hauptprogramm extends Frame



Kann mir jemand sagen, wo hier das Problem liegt und wie ich es beheben kann? Der Compiler zeigt keinen Fehler an.

Danke schonmal
 
Wenn ich es folgendermaßen mache wird mein Bild angzeigt (s. Screenshot):
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Hauptprogramm {
    // private AmpelWindowListener aWL = new AmpelWindowListener();
    // private AmpelActionListener aAL = new AmpelActionListener();

    public MenuBar menu = new MenuBar();
    public Menu menuFile = new Menu("Menü");
    public MenuItem auto = new MenuItem("Automatisch");
    public MenuItem manu = new MenuItem("Manuell");
    public MenuItem stop = new MenuItem("Stop");
    public MenuItem exit = new MenuItem("Exit");

    public JPanel p = new JPanel();
    private Panel backgroundPanel = new Panel(new BorderLayout());
    JLabel l = new JLabel(new ImageIcon("C:\\Users\\Erich\\Desktop\\BildX.png"));

    JFrame f = new JFrame();

    public Hauptprogramm() {
        f.setTitle("Titel");
        // f.setLayout(null);

        // f.getContentPane().add(l);
        l.setLayout(null);
        l.setOpaque(true);
        // l.setBounds(0,0,3573,2736);
        l.setBounds(0, 0, 1080, 720);
        this.p.add(l);

        f.getContentPane().add(backgroundPanel);
        this.backgroundPanel.add(p);

        l.setVisible(true);

        // this.addWindowListener(aWL);
        this.menuFile.add(auto);
        this.menuFile.add(manu);
        this.menuFile.add(stop);
        this.menuFile.add(exit);
        this.menu.add(this.menuFile);
        // f.setMenuBar(this.menu);
        // this.auto.addActionListener(aAL);
        // this.manu.addActionListener(aAL);
        // this.stop.addActionListener(aAL);
        // this.exit.addActionListener(aAL);
        f.setSize(1080, 720);
        f.setVisible(true);
    }

     public void fenster() {

     }// public void fenster()

    public static void main(String argv[]) {
        Hauptprogramm h = new Hauptprogramm();
        h.fenster();
    }// public static void main(String argv[])
}// public class Hauptprogramm extends Frame
 

Anhänge

  • 01.png
    01.png
    14,2 KB · Aufrufe: 20
Zuletzt bearbeitet:
Ich würde dir empfehlen eine Klasse zu machen die von JPanel / JComponent erbt, dort die paintComponent(Graphics g) Methode überschreibt wo das Bild gezeichnet wird und das ganze dann deinem JFrame hinzuzufügen.
 

Neue Themen


Zurück
Oben