2016-08-23 6 views
-3

ユーザは4つのもの(名、姓、電子メール、電話番号)を入力し、1つまたは複数の場合は1つのJOptionPaneウィンドウが表示されます。1つのjoptionpaneを持つ複数のテキストフィールド

String firstname = TF_1.getText(); 
String lastname = TF_2.getText(); 
String email = TF_3.getText(); 
String phonenumber = TF_4.getText(); 


if (TF_1.equals("") || 
    TF_2.equals("") || 
    TF_3.equals("") || 
    TF_4.equals("")) { 

JOptionPane.showMessageDialog(null, "All text fields must be filled"); 
+1

もちろん、フィールドではなくテキストを比較する必要があります(例えば、 'firstname.equals(" ")') – Robin

+1

個人的に私はメッセージダイアログに悩まされます。すべてのテキストフィールドがいっぱいになるまで、送信ボタンが非表示になっていると、もっと気に入っています。しかし、これは味の問題です。あなたの実際の質問は何ですか? – ArcticLord

+0

[チュートリアル](https://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html#stayup)を参照してください。「ダイアログを閉じる前にユーザーの回答を確認するにはどうすればよいですか?」 –

答えて

0

最初のこと個人的には、すべてのフィールドについて1つの汎用メッセージが好きではありません。ユーザーは、入力した内容を混乱させてしまいます。すべてのフィールドを1つずつチェックするフローを使用することができます。フィールドが空の場合はエラーを表示し、フィールドから戻ることができます。

TF_1にないfirstname、lastnameなどの文字列フィールドを確認します。

public boolean isEmpty(String... fields) 
    { 
     for (String string : fields) 
     { 
      if (null == string || string.trim().length() == 0) 
      { 
       // return true of filed is blank 
       return true; 
      } 
     } 
     return false; 
    } 

このメソッドを使用して、すべてのフィールドを渡して空であるかどうかを確認できます。

関連する問題