0

ユーザーをトラップしてファイル名に何かを入力させようとして失敗しました。パスと拡張子が事前に定義されているため、入力ダイアログを使用しているだけで、ユーザーが入力した後にファイル名に追加する必要があります。タイトルにあるように、ユーザーがキャンセル ボタンをクリックするたびに NullPointerException が発生します。入力ダイアログにはキャンセル ボタンを削除する方法がないため、次の方法を使用しました。

while (filename.equals(null) || filename.equals("")) {
    filename=JOptionPane.showInputDialog(this, "Please enter the filename.");
    if (filename.equals(null)) filename="";
}

通常、そのような2つの場所にfilename.equals(null)を配置することはありませんが、両方を別々に試し、欲求不満から一緒に試しました。次の行で NullPointerException が引き続き発生します。

if (filename.equals(null)) filename="";

キャンセル ボタン (null) をトラップする方法や防止する方法はありますか?

4

3 に答える 3

4
  filename.equals(null) // Compare Object 

のようにする必要があります

  filename == null // Compare Object references
于 2013-05-08T15:48:48.323 に答える