2013-12-13 52 views
2

我想讓用戶選擇其中一個選項。 但我的代碼不起作用。不知道是否我錯了Java單選按鈕選擇並繼續

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

它保持提示「請選擇男性或女性」,即使選擇了一個!

+1

定義「我的代碼不起作用」。這種表達毫無意義。詳細說明。 – Kon

+0

它保持提示請選擇男性或女性,即使其中一個被選中 – BeyondProgrammer

+1

如果任一按鈕未被選中,您的條件會顯示提示。 – Kon

回答

1

你需要做到這一點...

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

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

    } 

您的代碼將始終顯示警報,因爲如果沒有選擇按鈕中的任何一個你的條件返回true

+0

哈哈,謝謝我弄糊塗了 – BeyondProgrammer

+0

如果你改變「||」,你可以繼續使用你的代碼,與「&&」它將工作 – Myth

+0

我會繼續使用||你的方法,這基本上是我想定義的,但是,我很容易混淆。 – BeyondProgrammer

0

恐怕你需要擺脫! ,所以它會工作

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



} 
0

而不是OR(因爲當一個人選擇了其他將保持提示,是不是)

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

你真的想(當任一被選中)

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

,或者您可以使用的否定和

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

使用,而不是OR

+0

你爲什麼認爲這有效?你爲什麼認爲它有什麼不同? – Kon

+0

@Kon:請檢查我的編輯代碼..undo你downvote ..! –

0

我同意@Elliott Frisch。問題出在以下代碼中:

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

對於這個表達式,兩種情況將滿足: 1.用戶沒有選擇無線電。 2.用戶只選擇了一個收音機。在這種情況下,將會滿足!jRadioMale.isSelected()或!jRadioFemale.isSelected(),這使得總表達式爲true。

我想你可能想表達的只有在特定情境1.你可以修改你的代碼是真的如下: jRadioMale.isSelected()& & jRadioFemale.isSelected()

希望我的回答可能!給你一些幫助。

+0

多數民衆贊成在我的答案是..! –