JOptionPane.showInputDialog()方法是显示一个可以输入的对话框,我想实现的目的是接受输入的值然后连接数据库做查询,但是问题是如果用户没有输入值而且是点了取消按扭,系统就抛出一个java.lang.NullPointerException
异常,不知道如何解决.如果是用try catch捕获的话catch子句该如何处理.可是我不想让他抛出异常,不知道该怎么办
代码如下:
String strid = JOptionPane.showInputDialog("请输入ID");                 if (strid.equals("") || strid == null)
                 {
                    JOptionPane.showMessageDialog(null,"请输入ID","提示信息",JOptionPane.ERROR_MESSAGE);
                     return;
                 }
//后面是连数据库的代码省略了

解决方案 »

  1.   

    写反了,应该是
    if (strid == null || strid.equals(""))
      

  2.   

    JOptionPane.showInputDialog(String str)有这个方法,你先好好看看API吧
      

  3.   

    哈哈,不好意思有的,前面没看到
    public static String showInputDialog(Object message)
                                  throws HeadlessException
    这样你先打印出来看返回值是什么,然后再做判断。
      

  4.   

    问题解决了
    取消事件是不会产生String 对象的
    所以应这样写
    String strid = JOptionPane.showInputDialog("请输入ID");
                      if(strid == null)
                      {
                         return;
                      }
                     if (strid.equals("") )
                     {
                        JOptionPane.showMessageDialog(null,"请输入ID","提示信息",JOptionPane.ERROR_MESSAGE);
                         return;
                     }
      

  5.   

    我刚在培训班学java一个月,还没学到异常处理,今天在做一个防沉迷验证小程序,功能差不多实现,就是点对话框的取消或者右上角的叉叉或者按键盘上的Esc时,就会抛出空指针异常,百思不得其解,下课回来上网查,终于在这里找到一个解决办法,了结心中困惑,实在快意,感谢之心溢于言表!
      

  6.   

    是啊,showInputDialog的点击“取消”和点击“关闭”事件所引起的空指针异常就这样搞定了。嘿嘿
      

  7.   

    不过我又看了下,发现只要“==”和“equals()”的顺序正确(即先“==”后 equals),那么equals下的那个 return; 貌似就可以不要了。