选择Java单选按钮并继续

时间:2013-12-13 04:09:20

标签: java swing jradiobutton

我想让用户选择其中一个选项。 但我的代码不起作用。不确定我是不是错了

if (!jRadioMale.isSelected() || !jRadioFemale.isSelected()) {
  JOptionPane.showConfirmDialog(rootPane, 
      "Please Select Male or Female", 
      "", 
      JOptionPane.OK_CANCEL_OPTION);
} else {
  // Continue to next
}   

即使选择了一个,也会提示“请选择男性或女性”!

5 个答案:

答案 0 :(得分:1)

你需要这样做......

 if(jRadioMale.isSelected() || jRadioFemale.isSelected()){
    //Continue to next           

            }
    else{
     JOptionPane.showConfirmDialog(rootPane, "Please Select Male or Female", "", JOptionPane.OK_CANCEL_OPTION);

    }   

您的代码将始终显示警告,因为如果未选择任何一个按钮,您的条件将返回true

答案 1 :(得分:0)

恐怕你需要摆脱! ,所以它会起作用

    if(jRadioMale.isSelected()|| jRadioFemale.isSelected()){                       
                }else{
 JOptionPane.showConfirmDialog(rootPane, "Please Select Male or Female", "", JOptionPane.OK_CANCEL_OPTION);



}

答案 2 :(得分:0)

而不是 OR (将继续提示,因为当选择一个时,另一个不是)

if (!jRadioMale.isSelected() || !jRadioFemale.isSelected()) {

你真的想要 AND (当选择其中任何一个时)

if (!jRadioMale.isSelected() && !jRadioFemale.isSelected()) {

或者您可以使用 AND

的否定
if (!(jRadioMale.isSelected() || jRadioFemale.isSelected())) {

答案 3 :(得分:0)

   if (!jRadioMale.isSelected() && !jRadioFemale.isSelected()) {
  JOptionPane.showConfirmDialog(rootPane, 
      "Please Select Male or Female", 
      "", 
      JOptionPane.OK_CANCEL_OPTION);
} else {
  // Continue to next
}   

使用 AND 代替 OR

答案 4 :(得分:0)

我同意@Elliott Frisch。问题出现在以下代码中:

!jRadioMale.isSelected()|| !jRadioFemale.isSelected()

对于这个表达式,有两种情况会满足: 1.用户没有选择收音机。 2.用户只选择了一台收音机。在这种情况下,将满足!jRadioMale.isSelected()或!jRadioFemale.isSelected(),这使得总表达式为真。

我认为你可能只想在情境1下表达式是真的。你可以修改你的代码如下: !jRadioMale.isSelected()&& !jRadioFemale.isSelected()

希望我的回答可以给你一些帮助。