我必須確保當按下開始遊戲按鈕打開遊戲框架。Java - 開始按鈕和新的JFrame
這是菜單:
這是控制器類:
@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);
}
}
}
的問題是,當我按Start Game
我有這樣的例外:
線程「AWT-EventQueue-0」中的異常java.lang.ClassCastException: javax.swing.JButton中的不能轉換爲javax.swing.JRadioButton
你可以發佈完整的堆棧跟蹤嗎? –
你爲什麼期望** e.getSource()**返回** JButton **和** JRadioButton **的實例? JRadioButton與JButton沒有**繼承**關係,這意味着e.getSource()返回的**對象**只能是一個** JButton **或** JRadioButton **實例,但在我看來它是JButton ,因爲用戶按下JButton :) – ShayHaned
*「.. new JFrame ..」*請參閱[使用多個JFrames,好/壞實踐?](http://stackoverflow.com/q/9554636/418556) –