2013-12-16 81 views
1

該方法應該創建儘可能多的按鈕,如給定字符串 ,然後返回選定的字符串。 Eclipse說,我的返回語句不返回一個字符串。 我該如何編寫return語句才能做到這一點?如何使用可變長度從函數返回字符串

private static String getActionDialog(String... actions) { 

    JRadioButton[] buttons = new JRadioButton[actions.length]; 
    ButtonGroup group = new ButtonGroup(); 

    for (int i = 0; i < actions.length; i++) { 
     buttons[i] = new JRadioButton(actions[i]); 
     group.add(buttons[i]); 
    } 

    buttons[0].setSelected(true); 

    Object[] message = buttons; 
    Object[] options = { "OK", "Cancel" }; 
    int n = JOptionPane.showOptionDialog(null, message, 
      "title", JOptionPane.OK_CANCEL_OPTION, 
      JOptionPane.QUESTION_MESSAGE, null, options, options[0]); 

    if (n == JOptionPane.OK_OPTION) { 
     if (buttons[0].isSelected()) { 
      return actions[0]; 
     } 
     if (buttons[1].isSelected()) { 
      return actions[1]; 
     } 
    } else { 
      return null; 
     } 
} 

回答

4

如果

if (n == JOptionPane.OK_OPTION) { 

條件解析爲true並會發生什麼事都不在

if (buttons[0].isSelected()) { 
    return actions[0]; 
} 
if (buttons[1].isSelected()) { 
    return actions[1]; 
} 

決心true的條件?在這種情況下,您的方法沒有return聲明。你需要在所有執行路徑中返回一些東西。

在方法結束時添加

return null; 

或適當return語句。