我想让用户选择其中一个选项。 但我的代码不起作用。不确定我是不是错了
if (!jRadioMale.isSelected() || !jRadioFemale.isSelected()) {
JOptionPane.showConfirmDialog(rootPane,
"Please Select Male or Female",
"",
JOptionPane.OK_CANCEL_OPTION);
} else {
// Continue to next
}
即使选择了一个,也会提示“请选择男性或女性”!
答案 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()
希望我的回答可以给你一些帮助。