Как использовать jButtongroup для выбора radiobutton с помощью java

#java #swing

#java #swing

Вопрос:

я создаю простую рейтинговую систему на Java. у нас есть переключатель 5 для оценки курса. я прикрепил снимок экрана ниже.у меня есть группа buttonGroup1, buttonGroup2, buttonGroup3

введите описание изображения здесь

я должен выполнить код ниже. что я пробовал до сих пор. сначала я попробовал с помощью buttonGroup1, но я получил сообщение об ошибке: метод IsSelected в классе ButtonGroup не может быть применен к заданным типам, требующим модели кнопок. как правильно написать код здесь и получить его.

  if(buttonGroup1.isSelected())
        {
            
            if(r1.isSelected()){  
             
            JOptionPane.showMessageDialog(this,"1");    
          }  
             else if(r2.isSelected()){  
             
            JOptionPane.showMessageDialog(this,"2");    
          }  
             else if(r3.isSelected()){  
             
            JOptionPane.showMessageDialog(this,"3");    
          }  
             else if(r4.isSelected()){  
             
            JOptionPane.showMessageDialog(this,"4");    
          }  
            
             else if(r5.isSelected()){  
             
            JOptionPane.showMessageDialog(this,"5");    
          }  
           
        }
 

если (buttonGroup1.IsSelected()) эта строка переходит в метод ошибки, выбранный в классе ButtonGroup, не может быть применен к заданным типам
, требующим модели кнопок.

Комментарии:

1. вероятно, вы предполагаете передать некоторое значение внутри метода IsSelected

2. ya. я не знаю, какое значение передать

Ответ №1:

buttonGroup.isSelected(ButtonModel m) на самом деле это не то, что вы хотите здесь, потому что это проверяет, выбрано ли конкретное ButtonModel . Либо вы опускаете весь оператор outer if и просто проверяете все отдельные переключатели для выбора, либо вы можете использовать getSelection() и проверять значение null.

Пример:

 if (buttonGroup1.getSelection() != null) {

    if (r1.isSelected()) {
        JOptionPane.showMessageDialog(this, "1");
    } else if (r2.isSelected()) {
        JOptionPane.showMessageDialog(this, "2");
    } else if (r3.isSelected()) {
        JOptionPane.showMessageDialog(this, "3");
    } else if (r4.isSelected()) {
        JOptionPane.showMessageDialog(this, "4");
    } else if (r5.isSelected()) {
        JOptionPane.showMessageDialog(this, "5");
    }
}
 

Комментарии:

1. if (buttonGroup1.getSelected() != null)) в этой строке отображается ошибка недопустимого начального выражения

Ответ №2:

Из документации ButtonGroup:

метод IsSelected(ButtonModel m) — возвращает, выбрана ли ButtonModel.

Итак, чтобы использовать этот метод, вы предполагаете передать туда объект ButtonModel

Комментарии:

1. если (buttonGroup1.IsSelected(ButtonModel m)) я написал так ‘) отображается ожидаемая ошибка