Hallo liebe Community,
ich habe ein kleineres Problem:
Ich habe in meinem Spiel im Hauptmenü ein Button "Start", wenn man da drauf drückt erscheint ein neues Menü, dort gibt es einen "Zurück" Button. Wenn man diesen ausführt soll man wieder zurück ins Hauptmenü kommen. Ich habe es jetzt so gemacht das einfach alle Buttons, Labels etc auf die Größe 0 gesetzt werden (verschwinden) und dann der "Hauptmenücode" wieder ausgeführt wird, wodurch dann alle Objekte die bei Programmstart schon ausgeführt worden sind wieder erstellt werden. Das funktioniert auch mit Buttons und Labeln, jedoch nicht mit dem Background, der ist einfach nur grau. Wie kann ich es machen das auch der Hauptmenü Background wieder angezeigt wird?
[Java]
public class Frame extends JFrame {
public static void main(String[] args) throws IOException {
Frame frame = new Frame("MineJump");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(1400,800);
frame.setResizable(false);
frame.setLocationRelativeTo(null);
Image icon = new ImageIcon(Frame.class.getResource("/Images/icon.png")).getImage();
frame.setIconImage(icon);
frame.setVisible(true);
}
public Frame(String titel) {
super(titel);
hauptmenu();
}
public void hauptmenu() {
JPanel panel = new JPanel();
JLabel background = new JLabel(new ImageIcon(Frame.class.getResource("/Images/menuBackground.png")));
background.setBounds(0,0,1400,800);
panel.add(background);
panel.setLayout(null);
JLabel name = new JLabel();
name.setBounds(237, 50, 926, 156);
name.setIcon(new ImageIcon(Frame.class.getResource("/Images/minejump.png")));
JButton startButton = new JButton(" ");
JButton optionenButton = new JButton(" ");
JButton schliessenButton = new JButton(" ");
startButton.setBounds(300, 260, 798, 80);
startButton.setIcon(new ImageIcon(Frame.class.getResource("/Images/startButton.png")));
startButton.setRolloverIcon(new ImageIcon(Frame.class.getResource("/Images/startButtonMouseOver.png")));
startButton.setBorderPainted(false);
startButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
background.setIcon(new ImageIcon(Frame.class.getResource("/Images/zwischenBackground.png")));
startButton.setBounds(0,0,0,0);
optionenButton.setBounds(0,0,0,0);
schliessenButton.setBounds(0,0,0,0);
name.setIcon(new ImageIcon(Frame.class.getResource("/Images/spiel.png")));
name.setBounds(403, 50, 593, 155);
JButton neuButton = new JButton(" ");
JButton ladenButton = new JButton(" ");
JButton zuruckButton = new JButton(" ");
neuButton.setBounds(300, 260, 798, 80);
neuButton.setIcon(new ImageIcon(Frame.class.getResource("/Images/neuesSpielButton.png")));
neuButton.setRolloverIcon(new ImageIcon(Frame.class.getResource("/Images/neuesSpielButtonMouseOver.png")));
neuButton.setBorderPainted(false);
ladenButton.setBounds(300, 400, 798, 80);
ladenButton.setIcon(new ImageIcon(Frame.class.getResource("/Images/spielLadenButton.png")));
ladenButton.setRolloverIcon(new ImageIcon(Frame.class.getResource("/Images/spielLadenButtonMouseOver.png")));
ladenButton.setBorderPainted(false);
zuruckButton.setBounds(300, 540, 798, 80);
zuruckButton.setIcon(new ImageIcon(Frame.class.getResource("/Images/zuruckButton.png")));
zuruckButton.setRolloverIcon(new ImageIcon(Frame.class.getResource("/Images/zuruckButtonMouseOver.png")));
zuruckButton.setBorderPainted(false);
zuruckButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
neuButton.setBounds(0, 0, 0, 0);
ladenButton.setBounds(0, 0, 0, 0);
zuruckButton.setBounds(0, 0, 0, 0);
name.setBounds(0, 0, 0, 0);
panel.setBounds(0, 0, 0, 0);
hauptmenu();
}
});
remove(panel);
add(neuButton);
add(ladenButton);
add(zuruckButton);
add(panel);
}
});
optionenButton.setBounds(300, 400, 798, 80);
optionenButton.setIcon(new ImageIcon(Frame.class.getResource("/Images/optionenButton.png")));
optionenButton.setRolloverIcon(new ImageIcon(Frame.class.getResource("/Images/optionenButtonMouseOver.png")));
optionenButton.setBorderPainted(false);
optionenButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("223");
}
});
schliessenButton.setBounds(300, 540, 798, 80);
schliessenButton.setIcon(new ImageIcon(Frame.class.getResource("/Images/schliessenButton.png")));
schliessenButton.setRolloverIcon(new ImageIcon(Frame.class.getResource("/Images/schliessenButtonMouseOver.png")));
schliessenButton.setBorderPainted(false);
schliessenButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
add(startButton);
add(optionenButton);
add(schliessenButton);
add(name);
add(panel);
}
}
[/Java]
Mit freundlichen Grüßen
Der_Falke_
ich habe ein kleineres Problem:
Ich habe in meinem Spiel im Hauptmenü ein Button "Start", wenn man da drauf drückt erscheint ein neues Menü, dort gibt es einen "Zurück" Button. Wenn man diesen ausführt soll man wieder zurück ins Hauptmenü kommen. Ich habe es jetzt so gemacht das einfach alle Buttons, Labels etc auf die Größe 0 gesetzt werden (verschwinden) und dann der "Hauptmenücode" wieder ausgeführt wird, wodurch dann alle Objekte die bei Programmstart schon ausgeführt worden sind wieder erstellt werden. Das funktioniert auch mit Buttons und Labeln, jedoch nicht mit dem Background, der ist einfach nur grau. Wie kann ich es machen das auch der Hauptmenü Background wieder angezeigt wird?
[Java]
public class Frame extends JFrame {
public static void main(String[] args) throws IOException {
Frame frame = new Frame("MineJump");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(1400,800);
frame.setResizable(false);
frame.setLocationRelativeTo(null);
Image icon = new ImageIcon(Frame.class.getResource("/Images/icon.png")).getImage();
frame.setIconImage(icon);
frame.setVisible(true);
}
public Frame(String titel) {
super(titel);
hauptmenu();
}
public void hauptmenu() {
JPanel panel = new JPanel();
JLabel background = new JLabel(new ImageIcon(Frame.class.getResource("/Images/menuBackground.png")));
background.setBounds(0,0,1400,800);
panel.add(background);
panel.setLayout(null);
JLabel name = new JLabel();
name.setBounds(237, 50, 926, 156);
name.setIcon(new ImageIcon(Frame.class.getResource("/Images/minejump.png")));
JButton startButton = new JButton(" ");
JButton optionenButton = new JButton(" ");
JButton schliessenButton = new JButton(" ");
startButton.setBounds(300, 260, 798, 80);
startButton.setIcon(new ImageIcon(Frame.class.getResource("/Images/startButton.png")));
startButton.setRolloverIcon(new ImageIcon(Frame.class.getResource("/Images/startButtonMouseOver.png")));
startButton.setBorderPainted(false);
startButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
background.setIcon(new ImageIcon(Frame.class.getResource("/Images/zwischenBackground.png")));
startButton.setBounds(0,0,0,0);
optionenButton.setBounds(0,0,0,0);
schliessenButton.setBounds(0,0,0,0);
name.setIcon(new ImageIcon(Frame.class.getResource("/Images/spiel.png")));
name.setBounds(403, 50, 593, 155);
JButton neuButton = new JButton(" ");
JButton ladenButton = new JButton(" ");
JButton zuruckButton = new JButton(" ");
neuButton.setBounds(300, 260, 798, 80);
neuButton.setIcon(new ImageIcon(Frame.class.getResource("/Images/neuesSpielButton.png")));
neuButton.setRolloverIcon(new ImageIcon(Frame.class.getResource("/Images/neuesSpielButtonMouseOver.png")));
neuButton.setBorderPainted(false);
ladenButton.setBounds(300, 400, 798, 80);
ladenButton.setIcon(new ImageIcon(Frame.class.getResource("/Images/spielLadenButton.png")));
ladenButton.setRolloverIcon(new ImageIcon(Frame.class.getResource("/Images/spielLadenButtonMouseOver.png")));
ladenButton.setBorderPainted(false);
zuruckButton.setBounds(300, 540, 798, 80);
zuruckButton.setIcon(new ImageIcon(Frame.class.getResource("/Images/zuruckButton.png")));
zuruckButton.setRolloverIcon(new ImageIcon(Frame.class.getResource("/Images/zuruckButtonMouseOver.png")));
zuruckButton.setBorderPainted(false);
zuruckButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
neuButton.setBounds(0, 0, 0, 0);
ladenButton.setBounds(0, 0, 0, 0);
zuruckButton.setBounds(0, 0, 0, 0);
name.setBounds(0, 0, 0, 0);
panel.setBounds(0, 0, 0, 0);
hauptmenu();
}
});
remove(panel);
add(neuButton);
add(ladenButton);
add(zuruckButton);
add(panel);
}
});
optionenButton.setBounds(300, 400, 798, 80);
optionenButton.setIcon(new ImageIcon(Frame.class.getResource("/Images/optionenButton.png")));
optionenButton.setRolloverIcon(new ImageIcon(Frame.class.getResource("/Images/optionenButtonMouseOver.png")));
optionenButton.setBorderPainted(false);
optionenButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("223");
}
});
schliessenButton.setBounds(300, 540, 798, 80);
schliessenButton.setIcon(new ImageIcon(Frame.class.getResource("/Images/schliessenButton.png")));
schliessenButton.setRolloverIcon(new ImageIcon(Frame.class.getResource("/Images/schliessenButtonMouseOver.png")));
schliessenButton.setBorderPainted(false);
schliessenButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
add(startButton);
add(optionenButton);
add(schliessenButton);
add(name);
add(panel);
}
}
[/Java]
Mit freundlichen Grüßen
Der_Falke_