2选项joption的问题

时间:2013-06-24 19:54:48

标签: java swing

我遇到了这两个不同选项的问题,第一个选项打开浏览器以备将来使用,但第二个选项打开浏览器,而不是我希望打开的对话框。也有人可以告诉我如何取消取消按钮而不打开浏览器,提前感谢这里的代码。

    public static void CheckForUpdates(){
Object[] possibleValues = { "Check for Updates", "Check for version ID" };
Object selectedValue = JOptionPane.showInputDialog(null,
"What would you like to do?", "",
JOptionPane.INFORMATION_MESSAGE, null,
possibleValues, possibleValues[0]);
if ( JOptionPane.YES_NO_OPTION == JOptionPane.YES_OPTION) {
       try {
            Desktop.getDesktop().browse(new URI("www.google.ca"));
        } catch (IOException | URISyntaxException e) {
    }
    if ( JOptionPane.YES_NO_OPTION == JOptionPane.NO_OPTION){
        JOptionPane.showMessageDialog(frame, "version ID: V1");
    }
}
    }

1 个答案:

答案 0 :(得分:1)

比较常数是确定性的,即您的行为没有任何变化。

您需要检查showInputDialog的{​​{1}}值的结果。当没有选择(取消)时,该值为Object

null

除此之外:Java命名约定显示方法名称以小写字母开头,例如if (selectedValue != null) { // anything selected? // Check for version ID? if (selectedValue.toString().equals(possibleValues[1])) { JOptionPane.showMessageDialog(null, "version ID: V1"); } else { try { Desktop.getDesktop().browse(new URI("www.google.ca")); } catch (IOException | URISyntaxException e) { } } }