Tous les jours,Difficulté à retirer tous les composants d'un Jpanel
Je suis en train de coder un menu principal pour un projet. Le menu s'affiche correctement. J'ai également mis en place ActionListeners pour les trois boutons du menu. Ce que je souhaite faire est de réutiliser le JPanel pour un nouvel ensemble de boutons radio quand l'utilisateur choisit "Commencer une nouvelle partie". Cependant, en codant ActionPerformed pour supprimer les composants existants du JPanel, j'ai échoué. Je sais que removeAll est en quelque sorte important, mais malheureusement NetBeans m'informe que je ne peux pas l'appeler sur mon objet mainMenu JPanel dans ActionPerformed. Donc je l'ai commenté dans mon code ci-dessous, mais je l'ai laissé pour que vous puissiez voir ce que j'essaie de faire.
Vos pensées ou conseils sont appréciés.
Voici mon code principal:
public class Main {
public static void main(String[] args) {
MainMenu menu = new MainMenu();
menu.pack();
menu.setVisible(true);
}
}
Voici mon code mainMenu:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MainMenu extends JFrame implements ActionListener {
JButton startNewGame = new JButton("Start a New Game");
JButton loadOldGame = new JButton("Load an Old Game");
JButton seeInstructions = new JButton("Instructions");
public MainMenu() {
super("RPG Main Menu");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel mainMenu = new JPanel();
mainMenu.setLayout(new FlowLayout());
startNewGame.setMnemonic('n');
loadOldGame.setMnemonic('l');
seeInstructions.setMnemonic('i');
startNewGame.addActionListener(this);
loadOldGame.addActionListener(this);
seeInstructions.addActionListener(this);
mainMenu.add(startNewGame);
mainMenu.add(loadOldGame);
mainMenu.add(seeInstructions);
setContentPane(mainMenu);
}
public void actionPerformed(ActionEvent evt) {
Object source = evt.getSource();
if (source == startNewGame) {
// StartNewGame code goes here
// mainMenu.removeAll();
}
if (source == loadOldGame) {
// LoadOldGame code goes here
}
if (source == seeInstructions) {
// Quit code goes here
}
}
}
Merci Zach. Je vais considérer CardLayout. – elwynn