如何在Java中定位数组中的字符串?

时间:2015-05-07 05:36:28

标签: java

我想创建一个选项窗口,其中打开JOptionPane,用户浏览它,然后设置选项。不过,我在以下代码的第10-14行遇到了问题。

if (key == KeyEvent.VK_ENTER) {   
   Object[] possibleValues = { "Trails (Broken)", "Invicibility" };
   Object selectedValue = JOptionPane.showInputDialog(null,
           "Choose one", "Input",
           JOptionPane.INFORMATION_MESSAGE, null,
           possibleValues, possibleValues[0]);

   if (possibleValues[0] != null) {
       Object[] options = {"True", "False"};
           JOptionPane.showOptionDialog(null,
                   "Press True To Make It True And False For False",
                   (String) possibleValues[0], JOptionPane.DEFAULT_OPTION,
                   JOptionPane.INFORMATION_MESSAGE, null, options, options[0]);
       if (options[0] != null) {
           Options.OP_TRAILS = true;
       } else if(options[1] != null) {
           Options.OP_TRAILS = false;
       }
    }
}

1 个答案:

答案 0 :(得分:1)

我认为您需要阅读JOptionPane JavaDocsHow to Make Dialogs才能了解归还给您的内容

JOptionPane为您提供有关用户所选内容的信息。例如......

Object selectedValue = JOptionPane.showInputDialog(null,
                "Choose one", "Input",
                JOptionPane.INFORMATION_MESSAGE, null,
                possibleValues, possibleValues[0]);

selectedValue将为null(未选择任何内容)或possibleValues数组中的某个值。

JOptionPane.showOptionDialog将返回:

  

一个整数,表示用户选择的选项;如果用户关闭了对话框,则为CLOSED_OPTION

像这样......

Object[] possibleValues = {"Trails (Broken)", "Invicibility"};
Object selectedValue = JOptionPane.showInputDialog(null,
                "Choose one", "Input",
                JOptionPane.INFORMATION_MESSAGE, null,
                possibleValues, possibleValues[0]);

System.out.println(selectedValue);  
if (possibleValues[0].equals(selectedValue)) {
    // Trails (Broken) was selected
    Object[] options = {"True", "False"};
    int result = JOptionPane.showOptionDialog(null, "Press True To Make It True And False For False", (String) possibleValues[0], JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, options, options[0]);
    switch (result) {
        case 0:
            Options.OP_TRAILS = false;
            break;
        case 1:
            Options.OP_TRAILS = false;
            break;
    }
} else if (possibleValues[1].equals(selectedValue)) {
    // Invicibility was selected
}

可能更合适