为什么JOptionPane.getValue()继续返回uninitializedValue

时间:2010-11-26 15:49:14

标签: java swing joptionpane

以下是我的代码

public static void main(String args[]){
     JOptionPane pane = new JOptionPane();
     pane.showInputDialog(null, "Question");
     Object value = value.getValue();
     System.out.println(value.toString()); --> this will print out uninitializedValue

}

我基本上想要检测用户何时单击JOptionPane中的取消以及用户何时关闭JOptionPane

2 个答案:

答案 0 :(得分:3)

你应该这样做:

    String s = JOptionPane.showInputDialog(null, "Question");
    System.out.println(s);

如果窗格关闭或按下取消,这将返回null字符串。

答案 1 :(得分:2)

showInputDialog是一种静态方法,它不会修改JOptionPane。正如dogbane指出的那样,你应该检查返回值showInputDialog

如果在实例上调用静态方法,某些编译器会生成警告,因此请始终检查编译器警告。在你的情况下,调用这样的方法:

String result = JOptionPane.showInputDialog(null, "Question");
if(result == null){
//chancel pressed
}else{
//normal code
}