【问题标题】:Catching value of JOptionPane input dialog with preset choices?使用预设选项捕获 JOptionPane 输入对话框的值?
【发布时间】:2014-02-05 00:12:24
【问题描述】:

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

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

……这就是它的样子。

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

    int selection = JOptionPane.QUESTION_MESSAGE;

这将编译,但我实际上不能使用该值。

基本上当一个人选择两个选项之一时,我想知道它是哪一个。

edit2:供将来参考:

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

【问题讨论】:

  • 请大大澄清您可能遇到的问题,因为您的问题无法按书面方式回答,至少对我而言。请提供更多信息和相关代码。
  • 我添加了我想要做的,没有更多相关的代码,我只是希望能够使用两者中的哪个选项被选中。
  • “showMessageDialog、showConfirmDialog 和 showOptionDialog 方法返回一个表示用户选择的整数。”对你的目的不是更好吗? docs.oracle.com/javase/tutorial/uiswing/components/dialog.html
  • @HugoSousa 我最终可能不得不使用其中之一,因为捕获输入比我尝试的要清晰得多。

标签: java input dialog


【解决方案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了解更多详情

【讨论】:

  • 我尝试将值作为一个字符串,或者通过 JOptionPane.QUESTION_MESSAGE 的选项之一,但它只返回一个 int,当我测试它时,我无法使用该值。
  • JOptionPane.showInputDialog返回的值
【解决方案2】:

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

要么这样,要么调用toString() 并使用返回的字符串值来决定。

【讨论】:

  • toString() 在 JOptionPane.QUESTION_MESSAGE 上不起作用,有没有其他方法可以让它返回我的响应?
猜你喜欢
  • 1970-01-01
  • 2011-12-09
  • 2012-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-31
  • 1970-01-01
相关资源
最近更新 更多