• ベストアンサー

GUIで文字入力をしなかったときのエラー処理

Java初心者です。 GUIで入力ダイアログを作成しました。「あなたのお名前を入力してください」といった内容です。 そこで入力は出来るのですが、ユーザーが入力をしなかったときのエラー処理をどうすればよいのかわかりません。 「名前を入力してください」と表示させて、もう一度入力させる画面に持っていきたいです。 String playername=JOptionPane.showInputDialog(Main.this,"名前を入力してください"); この後の処理です。 親切な方ご教示ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 前後でどのように入力ダイアログを表示しているかわからないのでなんとも言えないのですが、 String playername = ""; // playernameが""の場合はループを続行 // すなわち入力があった場合はループ処理を終了 while ( "".equals(playername) ) { playername = JOptionPane.showInputDialog(this,"あなたのお名前を入力してください。"); if ( "".equals(playername) ) { // playernameが""の場合はメッセージを表示 JOptionPane.showMessageDialog(this, "名前を入力して下さい。"); } } こんな感じにすれば名前が入力されない限りはずっと入力を促します。

smew
質問者

お礼

ありがとうございます!! 出来ました!! それとどうやってこのソースを考えたのかも教えて頂けると助かります。例えば、equalsをどうして考え付いたのか等

その他の回答 (1)

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

こんにちは。 多くの経験のおかげで思いついただけなので、説明するのが難しいのですが、動きをそのまま日本語でいいので考えてみてください。 名前の入力が行われるまではメッセージを出して入力を促す。 名前の入力が行われていない、すなわち空白の間は入力を促す。 名前が空白の間→空白かどうかは"".equals(playername) 間→ループ いくつかある中のループで○○の間に適しているのはwhile なのでwhile ( "".equals(playername) ) {} これで入力が空白の間はループを抜けません。 入力があった場合は"".equals(playername)がfalseとなりループを終了します。 フローチャートと呼ばれる手法を調べてみてください。 (簡単に言えばある商品の中からあなたに適した商品をyesnoで選択していって答えが出るみたいなやつです)

smew
質問者

お礼

ありがとうございます! forやwhileを使えばいいんだろうなぁ とは思ったのですが、equalsが考え付かなく苦戦していました。 APIを自由自在に使えるようになりたいものです・・・

関連するQ&A