2014-01-11 70 views
0

尋找一些幫助我的代碼在這裏。我正在嘗試創建一個JOptionPane輸入對話框,該對話框將接受來自用戶的輸入(選項1或選項2),並根據第一個輸入顯示下一個菜單。 1和2會有不同的結果。JOptionPane輸入對話框菜單

我正在以正確的方式進行?

代碼:

public class MyJavaApplication { 
    public static void main(String[] args) throws FileNotFoundException { 
     //1. Options 

     List<String> optionList = new ArrayList<String>(); **//Create an array to store user input** 
     optionList.add("1"); 
     optionList.add("2"); 

     Object[] options = optionList.toArray(); **//Store option into array** 

     Object value = JOptionPane.showInputDialog(null, 
      "Please select your encryption Algorithm:(1 or 2)\n 1. Data Encryption  Standard(DES) \n 2. Advanced Encryption Standard(AES)", 
      null, 
      options, 
      options[0], 
      options[1]); **//JOption input dialog asking for either option one or 2** 

     int index = optionList.indexOf(value); 

編輯:

if (value == 1) { 
    List<String> optionList2 = new ArrayList<String>(); 
     optionList2.add("ECB"); 
     optionList2.add("CBC"); 

     Object[] options2 = optionList2.toArray(); 

     int value2 = JOptionPane.showOptionDialog(null, 
     "Please select your mode of operation:\n 1. Cipher Block Chaining(CBC) \n 2. Electronic Codebook(ECB)", 
     "Select", 
     JOptionPane.YES_NO_OPTION, 
     JOptionPane.QUESTION_MESSAGE, 
     null, 
     options, 
     optionList2.get(0)); 

     String option2 = optionList2.get(value2); 
}} 

回答

2

不知道爲什麼你正在嘗試使用一個輸入對話框。輸入對話框將返回輸入值到輸入字段或null如果對話被解散,這似乎並不是你真正想要的...

而是嘗試使用標準輸入對話框....

Options

List<String> optionList = new ArrayList<String>(); 
optionList.add("1"); 
optionList.add("2"); 

Object[] options = optionList.toArray(); 
int value = JOptionPane.showOptionDialog(
       null, 
       "Please select your encryption Algorithm:(1 or 2)\n 1. Data Encryption  Standard(DES) \n 2. Advanced Encryption Standard(AES)", 
       "Pick", 
       JOptionPane.YES_NO_OPTION, 
       JOptionPane.QUESTION_MESSAGE, 
       null, 
       options, 
       optionList.get(0)); 

String opt = optionList.get(value); 
System.out.println("You picked " + opt); 
+0

感謝您的幫助@MadProgrammer!這就是我需要的!無論如何,我可以將選項名稱從1和2更改爲AES和DES?再次感謝! –

+0

改變你添加到'optionList','JOptionPane'將使用這些值作爲按鈕的文本,並返回你選擇的選項的索引... – MadProgrammer

+0

好的謝謝@MadProgrammer工作。但它似乎不適用於我的第二個菜單。我仍然獲得AES和DES選項,而不是CBC和ECB。你能幫我解決這個問題嗎?非常感謝你! –