Je dois m'assurer que lorsque l'on appuie sur le bouton de démarrage, le cadre de jeu s'ouvre.Java - Bouton de démarrage et nouveau JFrame
Voici le menu:
C'est la classe contrôleur:
@Override
public void actionPerformed(ActionEvent e) {
JRadioButton source = (JRadioButton)e.getSource();
JButton sourceButton = (JButton)e.getSource();
if(source.isSelected() && source.getText().equals("Custom")){
MenuView.heightLabel.setEnabled(true);
MenuView.height.setEnabled(true);
MenuView.widthLabel.setEnabled(true);
MenuView.width.setEnabled(true);
MenuView.minesLabel.setEnabled(true);
MenuView.mines.setEnabled(true);
}
else{
MenuView.heightLabel.setEnabled(false);
MenuView.height.setEnabled(false);
MenuView.widthLabel.setEnabled(false);
MenuView.width.setEnabled(false);
MenuView.minesLabel.setEnabled(false);
MenuView.mines.setEnabled(false);
}
if(source.getText().equals("Beginner")){
if(sourceButton.getText().equals("Start Game")){
MenuView.fullRandom = new FullRandomGrid(ROW_BEGINNER, COLUMN_BEGINNER, MINE_BEGINNER);
Frame frame = new Frame(MenuView.fullRandom);
frame.setSize(270, 380);
frame.setResizable(false);
frame.setVisible(true);
}
}
}
Le problème est que quand je presse Start Game
J'ai cette exception:
Exception dans le fil "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.JButton ne peut pas être jeté à javax.swing.JRadioButton
Pouvez-vous publier la trace complète de la pile? –
Pourquoi voudriez-vous que ** e.getSource() ** renvoie l'instance de ** JButton ** et ** JRadioButton ** aussi? JRadioButton n'a pas de relation ** d'héritage ** avec JButton, ce qui signifie que ** l'objet ** renvoyé par e.getSource() ne peut être qu'une instance ** JButton ** ou ** JRadioButton **, ce qui selon moi est JButton , parce que l'utilisateur a appuyé sur un JButton :) – ShayHaned
* ".. nouveau JFrame .." * Voir [L'utilisation de plusieurs JFrames, bonne/mauvaise pratique?] (http://stackoverflow.com/q/9554636/418556) –