我遇到了这两个不同选项的问题,第一个选项打开浏览器以备将来使用,但第二个选项打开浏览器,而不是我希望打开的对话框。也有人可以告诉我如何取消取消按钮而不打开浏览器,提前感谢这里的代码。
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");
}
}
}
答案 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) {
}
}
}
。