Hallo ihr Lieben,
ich bin seit Stunden ziemlich verzweifelt. Hoffe ihr könnt mir helfen.
Bin dabei ein Cocktailmanager zu schreiben und habe ein Startfenster gebastelt, auf dem zwei Button liegen (BoxLayout).
Hinter diesen soll ein Bild liegen, also eine Art Hintergrundbild.
Das habe ich versucht mit dem Layered Pane zu verwirklichen.
Gibt zwei Klassen:
1. Startfenster:
Code:
public class Startfenster extends JFrame implements ActionListener {
protected JButton cocktailRezeptStart;
protected JButton cocktailAbendStart;
private JPanel startPanel = new JPanel();
private Cocktailrezept cocktailRezeptPanel;
private CocktailListe cocktailListe;
private CocktailListe cocktailAbendListe;
private StartfensterBild hintergrund;
private JLayeredPane layeredPane;
public Startfenster() {
init();
startLayout();
setSize(800, 500);
setVisible(true);
setResizable(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
private void startLayout() {
setTitle("Cocktail-Manager 1.0");
getContentPane().setLayout(new BorderLayout());
JPanel button = new JPanel();
button.setLayout(new BoxLayout(button, BoxLayout.Y_AXIS));
button.add(cocktailRezeptStart);
button.add(Box.createRigidArea(new Dimension(100, 100)));
button.add(cocktailAbendStart);
button.setBorder(BorderFactory.createEmptyBorder(200, 200, 500, 200));
startPanel.setLayout(new CardLayout());
startPanel.add(button, "StartPanel");
cocktailRezeptPanel = new Cocktailrezept(cocktailListe, cocktailAbendListe);
startPanel.add(cocktailRezeptPanel, "CocktailRezeptPanel");
getContentPane().add(startPanel, BorderLayout.CENTER);
layeredPane.add(hintergrund, new Integer(0), 0);
layeredPane.add(button, new Integer(1), 0);
getContentPane().add(layeredPane, BorderLayout.CENTER);
}
private void init() {
cocktailRezeptStart = new JButton("Cocktailrezept");
cocktailRezeptStart.setFont(new Font( "Calibri", Font.BOLD, 30));
cocktailAbendStart = new JButton("Cocktailabend");
cocktailAbendStart.setFont(new Font( "Calibri", Font.BOLD, 30));
cocktailAbendStart.addActionListener(this);
cocktailRezeptStart.addActionListener(this);
hintergrund = new StartfensterBild();
layeredPane = new JLayeredPane();
}
public void actionPerformed(ActionEvent click) {
if (click.getSource() == cocktailRezeptStart) {
((CardLayout) startPanel.getLayout()).show(startPanel,
"CocktailRezeptPanel");
} else if (click.getSource() == cocktailAbendStart) {
new Cocktailabend();
}
}
public static void main(String[] args) {
new Startfenster();
}
}
2. Klasse StartfensterBild:
Code:
public class StartfensterBild extends JPanel {
private Toolkit toolkit;
private Image image;
public StartfensterBild() {
super(null);
repaint();
}
public void paintComponent(Graphics g) {
toolkit = Toolkit.getDefaultToolkit();
image = toolkit.createImage("C:\\bild.jpg");
g.drawImage(image, 0, 0, this);
this.paintChildren(g);
}
}
Wäre toll wenn mir jemand weiterhelfen kann, wo das Problem liegt.