キャンセルまたはXを押さない限り、ユーザーに正しいファイル名を入力させようとしています。しかし、彼が入力をキャンセルすると、プログラムはNullPointerExceptionをスローします。 。ユーザーがキャンセルボタンを押したときJava Swing:ユーザーに正しいファイル名を入力させることができません
public void openSaveAsDirectory() {
JDialog dialog = new JDialog();
dialog.setTitle("Save file as");
String name = JOptionPane.showInputDialog(adTable, "Please type a name for your file");
if(name != null && !name.isEmpty()) {
File fileName = new File(SAVE_LOCATION + FILE_SEPERATOR + name + FILE_SUFFIX);
book.saveUser(fileName);
}
while(name.isEmpty()) {
name = JOptionPane.showInputDialog(adTable, "Please type a name for your file");
}
}
あなたの入力ダイアログをキャンセルすると、 'name'はnullになります。あなたは 'while(name.isEmpty()){'を実行します。 'name'はnullでもかまいません。 – nbokmans
[NullPointerExceptionとは何か、それを修正するにはどうすればいいですか?](https://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it) ) – nbokmans
ちょっと興味があります:なぜJOptionPaneとJFileChooserを使用していますか? – ControlAltDel