0
我遇到了一個問題,當我單擊代碼中的JRadioButton
時,我的交互輸出中出現大量紅線。該程序要求用戶選擇四個答案中的一個來回答「你最喜歡的水果是什麼?」。下面是從代碼的摘錄: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
在同一個事件監聽器中(例如有一個退出按鈕),但無論我做什麼,我似乎都無法在選擇單選按鈕後在底部添加提交按鈕。請幫忙!
提供了'button'聲明 –
你無條件地鑄造你的事件源JButton的完整代碼。當源是JRadioButton時,會導致ClassCastException。你必須首先查看instanceof,然後施放。 – garnulf