У меня возникла проблема, когда я получаю много красных строк в выводах моих взаимодействий, когда я нажимаю JRadioButton
в своем коде. Программа просит пользователя выбрать один из четырех ответов на вопрос «Какой твой любимый фрукт?». Вот выдержка из кода:JRadioButton не может быть передан JButton в EventListener
//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. Это приводит к исключению ClassCastException, когда источником является JRadioButton. Вы должны сначала проверить, что вы получаете, а затем бросаете. – garnulf