Hallo,
ich vermute mal du willst das Hintergrundbild angezeigt bekommen und die Buttons sollen darüber liegen …
Mit Layouts kenn ich mich nicht wirklich aus. Der Code unten müsste so funktionieren aber obs der beste Weg ist oder wie es schöner machbar ist kann ich nicht sagen… (Die MyPanel Klasse kommt von hier: http://www.tutorials.de/swing-java2d-3d-swt-jface/25… )
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class StartBild extends JFrame implements ActionListener {
class MyPanel extends JPanel {
private Image image;
MyPanel(Image image) {
this.image = image;
repaint();
}
public void paintComponent(Graphics g) {
g.drawImage(image, 0, 0, null);
}
}
MyPanel StartPanel;
//JPanel BildPanel;
private JButton startBut = new JButton(„Javio starten“);
private JButton highBut = new JButton(„Highscoreliste“);
private JButton endeBut = new JButton(„Javio beenden“);
public StartBild() {
//BildPanel = new JPanel();
StartPanel = new MyPanel(Toolkit.getDefaultToolkit().getImage(„images/hinter.jpg“));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container contentarea = getContentPane();
contentarea.setLayout(new BorderLayout());
//contentarea.add(BildPanel, BorderLayout.CENTER);
contentarea.add(StartPanel, BorderLayout.CENTER); // Ueberschreibt
// BildPanel
Icon bild = new ImageIcon(„images/hinter.jpg“);
JLabel hg = new JLabel(bild);
//BildPanel.add(hg); // fuege das Hintergrundbild dem StartPanel hinzu
setSize(bild.getIconWidth() + 5, bild.getIconHeight() + 5); // Fenstergroesse
// bild
startBut.addActionListener(start); // Lade den ActionListener start
StartPanel.add(startBut);
highBut.addActionListener(high); // Lade den ActionListener high
StartPanel.add(highBut);
endeBut.addActionListener(aus); // Lade den ActionListener aus
StartPanel.add(endeBut);
setVisible(true);
}
public static void main(String[] args) {
StartBild los = new StartBild();
}
// alle ActionListener
@Override
public void actionPerformed(ActionEvent e) {
throw new UnsupportedOperationException(„Not supported yet.“);
}
ActionListener start = new ActionListener() // ActionListener aus
{
public void actionPerformed(ActionEvent e) {
//KeyConfig loslos = new KeyConfig(); // Spiel starten
System.out.println(„Start Javio“);
// loslos.run(); //Cannot call invokeAndWait from the event
// dispatcher thread
}
};
ActionListener aus = new ActionListener() // ActionListener aus
{
public void actionPerformed(ActionEvent e) {
System.exit(0); // Programm schliessen
}
};
ActionListener high = new ActionListener() // ActionListener aus
{
public void actionPerformed(ActionEvent e) {
try {
//HighScore hscore = new HighScore(); // Highscore starten
} catch (Exception ex) {
//Logger.getLogger(StartBild.class.getName()).log(Level.SEVERE,
// null, ex);
}
System.out.println(„Start Highscore“);
}
};
}