Смена панелей по клику, у меня есть 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);
 }
 
 
 
}

0 ответов

Другие вопросы по тегам