2

私はここで初めてです。私が行っている小さなJavaプロジェクトについて助けを求めています。これは私が助けを必要としているコードスニペットです:

private void CalculateButtonActionPerformed(java.awt.event.ActionEvent evt)                                                
{                                                    
    // TODO add your handling code here:
    float Principal, Rate, Time, Result, Temp;

    Principal = Float.valueOf(PrincipalTextField.getText());
    Rate = Float.valueOf(RateTextField.getText());
    Time = Float.valueOf(TimeTextField.getText());

    Temp = (float) Math.pow((1 + Rate / 100), Time);
    Result = Principal * Temp;
    ResultTextField.setText(String.valueOf(Result));
}

PrincipalTextField、OR RateTextField、またはTimeTextFieldがユーザーによって入力されていないかどうかを確認したいのですが、入力されていない場合は、ユーザーに再確認を求めるダイアログボックスを表示します。テキストフィールドはJFormattedTextField変数です。if / elseまたはwhileループでこれを実行できることはわかっていますが、どのように設定すればよいかわかりません。助けてください!

4

3 に答える 3

3

次のようなことができます。

  • getText()文字列値を返します。length()したがって、長さが0になるかどうかをいつでも呼び出して確認できます。(*空白を削除するためtrim()に呼び出す前に、文字列を呼び出すことをお勧めします)length()

  • 次に、長さが 0 になった場合に、ダイアログ ボックスを表示します。これは、 を呼び出すことで実行できますJOptionPane.showMessageDialog()。「ダイアログの作成方法」の詳細については、こちらを参照してください。

したがって、次のようにします。

String principalText = PrincipalTextField.getText();
String rateText = RateTextField.getText();
String timeText = TimeTextField.getText();

if(principalText.trim().length == 0 || rateText.trim().length == 0 || timeText.trim().length == 0){
    JOptionPane.showMessageDialog(null, "YOUR_ERROR_MSG", "ERROR_TITLE", JOptionPane.ERROR_MESSAGE);
}

これはトピックから外れているかもしれませんが、Java Naming Conventionを見ることをお勧めします。変数の規則は、小文字で始まる大文字と小文字の混合文字を使用して変数名を構成することです

于 2012-09-07T09:01:46.093 に答える
2
  1. JFormattedTextFieldがある理由を見逃している

  2. に設定Number Formatterする必要がJFormattedTextFieldあり、その後

    • 解析する必要はありませんFloat value(doubleを使用する方がよいでしょう)

    • 空はデフォルトで 0 (ゼロ) の値になる可能性があります

    • 形で値を取る ((Number)PrincipalTextField.getValue()).floatValue();

  3. チュートリアルのコード例を見て、

于 2012-09-07T09:05:22.887 に答える
1

入力の検証InputVerifierで説明されているように、サブクラス化も検討してください。ここに関連する例があります。

于 2012-09-07T10:58:51.577 に答える