【问题标题】:JOptionPane input dialog menuJOptionPane 输入对话框菜单
【发布时间】:2014-01-11 06:01:22
【问题描述】:

在这里寻找有关我的代码的帮助。我正在尝试创建一个JOptionPane 输入对话框,它将接受用户的输入(选项 1 或选项 2)并根据第一个输入显示下一个菜单。 1 和 2 会有不同的结果。

我这样做对吗?

代码:

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);
}}

【问题讨论】:

    标签: java swing joptionpane


    【解决方案1】:

    不确定您为什么要尝试使用输入对话框。输入对话框将返回输入字段中输入的值或null,如果对话框被关闭,这似乎不是您真正想要的...

    请尝试使用标准输入对话框....

    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);
    

    【讨论】:

    • 感谢@MadProgrammer 的帮助!这就是我需要的!无论如何我可以将选项名称从 1 和 2 更改为 AES 和 DES 吗?再次感谢!
    • 更改您添加到optionList 的内容,JOptionPane 将使用这些值作为按钮的文本并返回您选择的选项的索引...
    • 好的,谢谢@MadProgrammer。但它似乎不适用于我的第二个菜单。我仍然得到 AES 和 DES 选项,而不是 CBC 和 ECB。你能帮我解决这个问题吗?非常感谢!
    猜你喜欢
    • 2011-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-02
    • 1970-01-01
    相关资源
    最近更新 更多