首页 > 解决方案 > 如何使用 java 来使用 jButtongroup 选择单选按钮

问题描述

我在 java 中创建简单的评级系统。我们有 5 个用于对课程进行评分的单选按钮。我在下面附上了屏幕截图。我有组 buttonGroup1、buttonGroup2、buttonGroup3

在此处输入图像描述

我在下面做代码。到目前为止我尝试了什么。首先我尝试使用 buttonGroup1 但我得到的错误是类 ButtonGroup 中的方法 isSelected 不能应用于给定类型需要 Button Model 。如何在此处正确编写代码并获取它。

 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");    
          }  
           
        }

if(buttonGroup1.isSelected()) 这一行转到错误方法 isSelected 类 ButtonGroup 不能应用于给定类型需要 Button Model 。

标签: javaswing

解决方案


buttonGroup.isSelected(ButtonModel m)在这里并不是您真正想要的,因为这会检查是否ButtonModel选择了特定内容。要么,您省略整个外部 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");
    }
}

推荐阅读