1

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

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

1 回答 1

1

比较常数是确定性的,即您不会得到任何行为变化。

您需要检查showInputDialog哪个结果是一个Object值。该值是null未选择任何内容(取消)时的值。

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

另外:Java 命名约定表明方法名称以小写字母开头,例如checkForUpdates.

于 2013-06-24T20:11:21.890 回答