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);
}
答案 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:虽然章鱼在一段代码中发现了问题(我可耻地忽略了这一点),但请记住以上几点,因为它们仍然适用。