使用预设选项捕获JOptionPane输入对话框的值?

时间:2014-02-05 00:12:25

标签: java input dialog

我正在使用带有输入对话框的JOptionPane。我无法捕捉到选择的价值,以便我可以在以后的程序中使用它。

    String[] options = {"Selection Sort", "Insertion Sort"};
    Object searchType = JOptionPane.showInputDialog(null, null, "Choose a sort type ", 
    JOptionPane.QUESTION_MESSAGE, null, options, options[0]);

Input Dialog

......这就是它的样子。

编辑:我无法捕获用户选择的选项。 我试过了:

    int selection = JOptionPane.QUESTION_MESSAGE;

那将编译,但我实际上无法使用该值。

基本上当一个人选择两个选项中的一个我想知道它是哪一个。

edit2:以供将来参考:

    Object selection = searchType;
    if(selection.equals(options[0]))
    {
        //something
    }
    else if(selection.equals(options[1]))
    {
        //something else
    }

2 个答案:

答案 0 :(得分:1)

您应该检查返回的对象并将其与数组中保存的项目进行比较。

或者,或者在其上调用toString()并使用返回的字符串值来决定。

答案 1 :(得分:1)

我认为你应该稍微阅读JavaDocs ......

  

返回:
  用户的输入,或null表示用户取消了输入

这意味着,如果使用选择Okay,它将返回用户选择的options参数列出的项目。在您的情况下,如果他们取消了对话框,则会Selection SortInsertion Sortnull

更新了示例

使用此选项并选择[Okay]输出Selection Sort

String[] options = {"Selection Sort", "Insertion Sort"};
Object searchType = JOptionPane.showInputDialog(null, null, "Choose a sort type ",
        JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
System.out.println(searchType);

仔细查看How to Make Dialogs了解更多详情