Hallo zusammen
Ich werde fast verrückt. Seit 2 Tagen versuche ich nun bei einem Menü
für ein Projekt ein Hintergrundbild einzufügen. Doch ich schaff das
einfach nicht.
Habe dutzende Beispiele schon probiert, aber nichts scheint zu
funktionieren.
Der Code für das erste Menüfenster sieht so aus:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.sound.sampled.Clip;
import javax.swing.*;
import java.applet.Applet;
import java.applet.AudioClip;
import java.net.MalformedURLException;
import java.net.URL;
import java.lang.*;
class gui extends JFrame implements ActionListener {
private JButton[] itemButtons;
private String[] items = { "Restart", "Pause", "Menu" };
private JTextField textfield;
private JTextField titel;
private CardLayout cardLayout;
private JPanel pnlMain;
private JPanel pnlStartMenu;
private JPanel pnlSpiel;
private JPanel pnlEinstellungen;
private JPanel pnlStart;
private JPanel pnlHighscore;
private JPanel pnlCredits;
private JLabel lblBild;
public AudioClip ac;
// Kostruktor
public gui() {
setTitle("SNAKE");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Einstellen eines BorderLayouts
getContentPane().setLayout(new BorderLayout());
pnlMain = new JPanel();
pnlSpiel = new JPanel(); // Karte Menu
pnlEinstellungen = new JPanel(); // Karte Einstellungen
pnlStart = new JPanel();
//pnlHighscore = new JPanel(); // Karte Highscore
pnlCredits = new JPanel();
//getContentPane().add(lblBild, BorderLayout.WEST);
//getContentPane().add(pnlButton, BorderLayout.SOUTH);
//getContentPane().add(lblBild, BorderLayout.WEST);
//getContentPane().add(lblBild);
getContentPane().add(pnlMain, BorderLayout.CENTER);
pnlMain.add(pnlSpiel, BorderLayout.CENTER); // Menu ist eine Karte
setSize(500, 600);
//setLocation(10, 10);
setVisible(true);
cardLayout = new CardLayout(); // neues Cardlayout machen
pnlMain.setLayout(cardLayout); // oberes Fenster = Cardlayout
// Karte Start
pnlMain.add(new StartMenu(this), "StartMenu");
// Karte Spiel
pnlSpiel.setLayout(new BorderLayout());
JPanel canvas = new JPanel();
canvas.setLayout(new GridLayout(1, 1));
textfield = new JTextField();
textfield.setEditable((false));
textfield.setText("test");
canvas.add(textfield);
JPanel Titel = new JPanel();
titel = new JTextField();
titel.setEditable((false));
titel.setText("SNAKE");
Titel.add(titel);
pnlSpiel.add(Titel, BorderLayout.NORTH);
pnlSpiel.add(canvas, BorderLayout.CENTER);
// pnlMain.add(pnlStartMenu, "StartMenu");
JPanel spielbuttons = new JPanel();
spielbuttons.setLayout(new GridLayout(1, 3));
itemButtons = new JButton[items.length];
for (int i = 0; i < items.length; i++) {
itemButtons[i] = new JButton(items[i]);
spielbuttons.add(itemButtons[i]);
pnlSpiel.add(spielbuttons, BorderLayout.SOUTH);
pnlMain.add(pnlSpiel, "Spiel");
}
itemButtons[0].addActionListener(this); // ActionListener Restart
itemButtons[1].addActionListener(this); // ActionListener Pause
itemButtons[2].addActionListener(this); // ActionListener Menu
// Karte Highscore
pnlMain.add(new Highscore(this), "Highscore");
// Karte Credits
pnlMain.add(new Credits(this), "Credits");
// Karte Einstellungen
pnlMain.add(new Einstellungen(this),"Einstellungen");
// Karte Spielerauswahl
pnlMain.add(new Spielerauswahl(this), "Spielerauswahl");
}
// Funktionen für den Cardwechsel
public void GotoHauptfenster()
{
cardLayout.show(pnlMain, "StartMenu");
}
public void GotoCredits()
{
cardLayout.show(pnlMain, "Credits");
}
public void GotoHighscore()
{
cardLayout.show(pnlMain, "Highscore");
}
public void GotoSpiel()
{
cardLayout.show(pnlMain,"Spielerauswahl");
}
public void GotoEinstellungen()
{
cardLayout.show(pnlMain, "Einstellungen");
}
public void actionPerformed(ActionEvent evt) {
if (evt.getSource().equals(itemButtons[2]))
{
System.out.println("Spiel_Back gedrückt");
cardLayout.show(pnlMain, "StartMenu");
}
else
{
cardLayout.show(pnlMain, "");
}
}
public static void main(String[] args) {
gui h = new gui();
}
}
Ich möchte eigentlich dass die Buttons ÜBER dem Bild liegen, doch wie
kann ich das machen.
Wenn ich das Bild vor den Buttons ins BorderLayout einfüge, sehe ich das
Bild nicht, nur die Buttons. Mache ich es umgekehrt, sehe ich das Bild
aber die Buttons nicht.
Hoffe jemand kann mir helfen.
Gruess Jagger
Nimm ein Frame, lade das Bild rein, füge zum frame einen Mouselistener hinzu, wertte dann im actionlistener aus auf welche koordinaten geklickt wurde und führe die passende aktion aus.
Student schrieb: > Ich werde fast verrückt. Seit 2 Tagen versuche ich nun bei einem Menü > für ein Projekt ein Hintergrundbild einzufügen Äh was? Menü mit Hintergrundbild? Versuche doch mal in einfache Worten zu erklären was du eigentlich willst. Wenn du ein Panel mit einem Hintergrund versehen willst, geht das z.B am einfachstem über ein LayeredPane...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.