2017-11-01 2 views
0

ユーザがintまたはdoubleではない情報を入力したとき、または何も入力しなかったときにエラーメッセージを表示するにはどうすればよいですか?私はwhileループを試してみましたが、何度も何度もエラーメッセージを表示し続けていました。そして、ループなしで現在のコードは、ユーザーが実際に正しい数をボックスに入力すると、JOptionエラーボックスが表示されますしかし、値を再度入力するように促されたら、私を次のステップに連れて行きます。 1.この最初の表示が起こらないようにするにはどうしたらいいですか?2.ヌル値を入力すると実際に表示してループさせます。3.非数字の場合はどのようなコードを入力できますか?Java:非int型またはdouble型が入力されたときにJOptionエラーを表示するにはどうすればよいですか?

私は、下に見られるように、それが正しいと思ったが、コンソールエラーメッセージが表示されることがありました。あまりにもそれを修正する方法に関する任意のアイデア?

int型/ダブルJOption:文字列のための

JOptionPane.showMessageDialog(null, "Invalid entry!", "Error!", 
JOptionPane.ERROR_MESSAGE); 
    balance = Double.parseDouble(JOptionPane.showInputDialog(null, "Enter 
initial balance:", "Enter balance", JOptionPane.INFORMATION_MESSAGE)); 

// if the dialog box is empty 
    if (name.isEmpty()) { 
     do { 
      // display an error message 
      JOptionPane.showMessageDialog(null, "Name cannot be empty", "ERROR", JOptionPane.ERROR_MESSAGE); 
      name = JOptionPane.showInputDialog(null, "Enter customer name:", "Customers Name", // shows input box again 
        JOptionPane.INFORMATION_MESSAGE); 
     } while (name.isEmpty()); // will loop until not empty 
    } 

がエラー:

Exception in thread "main" java.lang.NullPointerException at CustomerInfo.main(CustomerInfo.java:19)

ライン19はこれです:

 } while (name.isEmpty()); // will loop until not empty) 

答えて

0

数値がdoubleであるかどうかを確認する方法を作成して(intでも有効です)、同じ呼び出しで入力した値がnullでないことを確認する方法を作成できます。

public static void main(String[] args) { 
     test("2.22"); 
     test("2"); 
     test(""); 
    } 

    public static void test(String s) { 
     if (checkIfNumber(s) && (s != null || !s.isEmpty())) { 
      System.out.println("number is entered"); 
     } else { 
      System.out.println("number was not entered"); 
     } 
    } 

    private static boolean checkIfNumber(String s) { 
     try { 
      Double.parseDouble(s); 
     } catch (NumberFormatException ex) { 
      //provide a pop up here if required 
      JOptionPane.showMessageDialog(null, "You did not enter a valid number or the input was empty"); 
      return false; 
     } 
     return true; 
    } 
0

はダブル

double balance=0; 
    do { 
     try { 
     balance = Double.parseDouble(JOptionPane.showInputDialog(null, "Enter initial balance:", "Enter balance", JOptionPane.INFORMATION_MESSAGE)); 
     JOptionPane.showMessageDialog(null, balance); 
    } catch (Exception e) { 
     JOptionPane.showMessageDialog(null, "Invalid entry, \nPlease enter balance in double format"); 
    } 
    } while (balance==0); 

のためにこれを試してみて、この文字列

ため
String csName = ""; 
    do { 
     try { 
      csName = JOptionPane.showInputDialog(null, "Enter Customer Name:", "Enter Customer Name", JOptionPane.INFORMATION_MESSAGE); 
      if (csName.equals("")) { 
       JOptionPane.showMessageDialog(null, "Please enter customer name"); 
      } else { 
       JOptionPane.showMessageDialog(null, csName); 
      } 
     } catch (Exception e) { 
      JOptionPane.showMessageDialog(null, "invalid entry, \nplease enter customer name in string format"); 
     } 
    } while (csName.equals("")); 
関連する問題