私のコードでJRadioButton
をクリックすると、私のインタラクションの出力にたくさんの赤い線が表示されます。プログラムは、 "あなたの好きな果物は何ですか?"という質問に対する4つの回答の1つを選択するようにユーザーに求めています。ここでは、コードからの抜粋です:JRadioButtonをEventListenerのJButtonにキャストすることができません
//constructor
public Form(){
EventListener listener = new EventListener();
private class EventListener implements ActionListener{
public void actionPerformed(ActionEvent e){
if ((JButton)e.getSource() == fruitButton) {
selectA = new JRadioButton("Apples");
selectA.addActionListener(listener);
selectB = new JRadioButton("Bananas");
selectB.addActionListener(listener);
selectC = new JRadioButton("Cherries");
selectC.addActionListener(listener);
selectD = new JRadioButton("Other");
selectD.addActionListener(listener);
if ((JButton)e.getSource() == quitButton) {
System.exit(1);
}
if (selectAButton.isSelected() || selectBButton.isSelected() || selectCButton.isSelected() || selectDButton.isSelected()) {
southPanel.add(submitButton);
}
}}
しかし、私は選択JRadioButtons
のいずれかをクリックしたときに、私は、コードを実行したとき、私は始まる、相互作用出力の赤線の多くを得る:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.JRadioButton cannot be cast to javax.swing.JButton
私はJButtons
を同じイベントリスナーに持っています(たとえば終了ボタンがあります)。ラジオボタンが選択された後は、送信ボタンを下部に追加することはできません。助けてください!イベントソースは、あなたがそれを唱える前に、実際のJButtonの場合
はあなたが無条件のJButtonにあなたのイベントのソースをキャストしている 'button'宣言 –
との完全なコードを提供します。ソースがJRadioButtonの場合、ClassCastExceptionが発生します。最初に取得してキャストしたものをinstanceofで確認する必要があります。 – garnulf