2017-12-27 29 views
-2

私はプロジェクトを持っており、Swingの私のJavaプログラムは二重配列を使ってユーザからの値を受け取り、注文フォームのようなアイテムの合計を出力します。 ユーザーがテキストボックスに値を入力しないと、これはエラーを示し、それ以上の計算はできません。 質問:テキストボックスに何も入力されていないことをコンピュータが理解できるようにするためには、値を0として取る必要があります。ダブル配列の値を比較/文字列に変換し、次に計算を続けます。配列の入力double値をnull/String値( "")に比較するにはどうすればよいですか?

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
    double price[]=new double[]{0.25,8.55,0.50,0.25}; 
    double amount[]=new double[4]; 
    double quantity[]=new double[4]; 
    quantity[0]=Double.parseDouble(jTextField1.getText()); 
    quantity[1]=Double.parseDouble(jTextField2.getText()); 
    quantity[2]=Double.parseDouble(jTextField3.getText()); 
    quantity[3]=Double.parseDouble(jTextField4.getText()); 
    for(int i=0;i<4;i++) // I want to use a for-loop or if-statement to 
         check if there is a value entered or not 
    { 
     if() 
     { 
      quantity[i] //no clue what to do here. 
     } 
    } 
    for(int i=0;i<4;i++) 
    { 

     { 
      amount[i]=quantity[i]*price[i]; 
     } 

    } 
    jTextField5.setText(String.valueOf(amount[0])); 
    jTextField6.setText(String.valueOf(amount[1])); 
    jTextField7.setText(String.valueOf(amount[2])); 
    jTextField8.setText(String.valueOf(amount[3])); 
+2

を使用することができますし、質問ですか...?ユーザーが値を入力しない場合は、通常は何も計算しません。これはあなたが言ったことです。実際の質問が何であるか混乱します。 – markspace

+1

'jTextField1,2 .....'の使用を避け、属性名に従って適切な名前を使用すると、コードをより読みやすくすることができます。 – Sanket

+0

JTextField.getText()オプションを使用して値と比較します。 – arkdevelopment

答えて

1

まず、テキストフィールドが空またはそれらを解析する前に、文字列値かどうかを確認するとよいでしょう:

は、ここに私のコードです。そして、おそらくすべての分野でそれを行う必要があります。

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
    // check the values of the text fields including an or condition for regular expressions 
    if (jTextField1.isEmpty() || jTextField1.getText().matches("\\d+.?\\d*") { 
     // you can use something like a modal to alert 
     JOptionPane.showMessage(null,"Must enter a decimal value"); 
    } else { 
     // do something with jTextField1 
    } 
} 
+0

お手伝いします。この種のチェックでは、チェックする複数のフィールドを持つコードを混乱させる可能性があります。独自のメソッドを入れ、チェックする各テキストフィールドを渡すメソッドを呼び出すことがあります。 – RickyM

1

あなたは

if (!jTextField1.getText().isEmpty())

+0

これは素晴らしい提案/回答と、確かに質問の一部に対処するのに役立ちます。しかし、コードスニペットを見ると、このコードがうまくいかなければならない理由について何らかの説明をすることが役に立ちます。フィールドの値をDoublesとして解析する場所があることがわかります。空のフィールド - このことについて彼に "警告"し、コードをリファクタリングする方法をアドバイスしたいと思うでしょう。 – ishmaelMakitla

関連する問題