Java单选按钮选择并继续

Java单选按钮选择并继续,java,swing,jradiobutton,Java,Swing,Jradiobutton,我想让用户选择其中一个选项。 但是我的代码不起作用。不知道我是否弄错了 if (!jRadioMale.isSelected() || !jRadioFemale.isSelected()) { JOptionPane.showConfirmDialog(rootPane, "Please Select Male or Female", "", JOptionPane.OK_CANCEL_OPTION); } else { // Continue

我想让用户选择其中一个选项。 但是我的代码不起作用。不知道我是否弄错了

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

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

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

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



}

你需要这样做

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

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

    }   

您的代码将始终显示警报,因为如果未选择按钮中的任何一个而不是,您的条件将返回true(将保持提示,因为当选择一个按钮时,另一个按钮未被选择)

您确实需要(当选择其中一个时)

或者你可以使用的否定形式

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

使用而不是我同意@Elliott Frisch。以下代码中存在问题:

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

对于该表达式,将满足两种情况: 1.用户未选择任何收音机。 2.用户仅选择了一个收音机。在这种情况下!jRadioMale.isSelected()或!将满足jRadioFemale.isSelected(),这使得整个表达式为true

我想你可能想知道,只有在情况1下,这个表达才是正确的。您可以按以下方式修改代码: !jRadioMale.isSelected()&&!jRadioFemale.isSelected()


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

定义“我的代码不工作”。那句话毫无意义。给出详细信息。它会继续提示。请选择男性或女性,即使其中一个被选中。您的情况表明,如果未选中任何一个按钮,则会显示提示。要更快获得更好的帮助,请发布一条消息。@user2822351:请检查我的答案。。!!你必须使用AND而不是OR,为什么你认为这有效?为什么你认为它有什么不同?哈哈,谢谢,我被弄糊涂了。如果你用“&&&”更改“| |”你可以继续使用你的代码,它会工作的。我将继续使用你的方法使用| |,这基本上是我想要定义的,但是,我很容易就被弄糊涂了。这就是我的答案。。!!
if (!jRadioMale.isSelected() && !jRadioFemale.isSelected()) {
if (!(jRadioMale.isSelected() || jRadioFemale.isSelected())) {
   if (!jRadioMale.isSelected() && !jRadioFemale.isSelected()) {
  JOptionPane.showConfirmDialog(rootPane, 
      "Please Select Male or Female", 
      "", 
      JOptionPane.OK_CANCEL_OPTION);
} else {
  // Continue to next
}