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.