Смена панелей по клику, у меня есть 1 кадр, и у каждой панели есть свой класс
У меня есть этот проект для университета, в котором я хочу добавить StartMenu с 3 кнопками (Play, Settings, Exit). У меня есть один JFrame "StartWindow", один JPanel "StartMenu" и один JPanel "Настройки". Когда я нажимаю "Играть", игра запускается, когда я нажимаю выход, она выходит, НО, когда я нажимаю на настройки, я хочу, чтобы отображалась панель "Настройки", но я не могу заставить ее работать. Я довольно новичок в Java, так что это может быть что-то действительно очевидное, но это сводит меня с ума:D
Вот мой код, спасибо заранее:) Это код для StartMenu JPanel Это код для StartWindow JFrame
Стартовое меню:
import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JPanel;
import Controller.Keyboard;
import Model.Game;
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
public class StartMenu extends JPanel {
/**
*
*/
private static final long serialVersionUID = 1L;
private JButton start = new JButton("Start");
private JButton settings = new JButton("Settings");
private JButton exit = new JButton("Exit");
public StartMenu() {
this.add(start, BorderLayout.CENTER);
this.add(settings, BorderLayout.CENTER);
this.add(exit, BorderLayout.CENTER);
}
public void paintComponent(Graphics g){
try {
Image img = ImageIO.read(new File("Image/Back.jpg"));
g.drawImage(img, 0, 0, this);
//Pour une image de fond
//g.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);
} catch (IOException e) {
e.printStackTrace();
}
start.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Map map = new Map();
Window window = new Window();
Game game = new Game(window);
map.setGame(game);
Keyboard keyboard = new Keyboard(game);
window.setKeyListener(keyboard);
window.update();
System.out.println("ok");
}
});
settings.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Window window = new Window();
}
});
exit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
System.exit(0);
System.out.println("fini");
}
});
}
}
и StartWindow:
package View;
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class StartWindow extends JFrame{
JPanel start = new JPanel();
JPanel startmenu = new JPanel();
JPanel settings = new JPanel();
/**
*
*/
private static final long serialVersionUID = 1L; {
this.setTitle("NEMO'S ADVENTURE");
this.setSize(750, 422);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setLayout(new BorderLayout());
this.getContentPane().add(new StartMenu());
this.setVisible(true);
}
}