java:JOptionPane.showInputDialog空指针异常

时间:2014-05-10 07:25:41

标签: java nullpointerexception joptionpane

    String response = javax.swing.JOptionPane.showInputDialog("Enter new database name:");

如果用户x超出optionpane

,则抛出空指针错误

首先,为什么响应不能保持空值?

其次,我该如何处理?

完整代码:

    String response = javax.swing.JOptionPane.showInputDialog("Enter new database name:").trim() + ".xml"; 
    if(response != null){
        File newData = new File("src\\golfdatabase\\Databases\\" + response);
        try {
            newData.createNewFile();
            databaseComboBox.addItem(response);
        } catch (IOException ex) {
            Logger.getLogger(GolfDriver.class.getName()).log(Level.SEVERE, null, ex);
        }
        databaseComboBox.setSelectedItem(response);
        disableButtonsNullList(false);
    }

3 个答案:

答案 0 :(得分:3)

您必须检查null的返回值,然后调用方法trim

String response = javax.swing.JOptionPane.showInputDialog("Enter new database name:");
if(response!=null)
response = response.trim()+".xml";

答案 1 :(得分:1)

当你点击"取消"它会返回null。尝试这样的事情:

 String response = javax.swing.JOptionPane.showInputDialog("Enter new database name:");
    if(response != null){
        response = response.trim() + ".xml";
    }

答案 2 :(得分:1)

请注意:字符串响应= JOptionPane.showInputDialog(....); 本来可以创建JOptionPane。

首先:是的回复CAN可以保持空值,但是你的代码片段没有显示你如何处理响应,因此我无法告诉它为什么会抛出它们。

其次:这又取决于您处理回复的方式,请详细说明您的代码。

编辑:尝试添加一个String强制转换,如java教程建议您这样做: http://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html

EDIT2:虽然章鱼在一段代码中发现了问题(我可耻地忽略了这一点),但请记住以上几点,因为它们仍然适用。