检查空的JFormattedTextField

时间:2012-09-07 08:54:19

标签: java swing string jformattedtextfield

我是新来的,我想在我正在做的小型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循环执行此操作,但我不确定如何设置这样做。请帮忙!

3 个答案:

答案 0 :(得分:2)

您可以这样做:

  • getText()返回String值。因此,您始终可以调用length()并检查长度是否为0。 (*我建议在调用trim()之前调用字符串length()以删除任何空格)

  • 接下来,如果任何长度变为零,您要做的是显示对话框。您可以通过致电JOptionPane.showMessageDialog()来完成此操作。您可以阅读有关“如何制作对话框”over here.

  • 的更多信息

所以,你会做这样的事情:

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。变量的约定是使用小写字母小写字母开头

组成变量名称

答案 1 :(得分:2)

  1. 您错过了JFormattedTextField

  2. 的原因
  3. 必须为Number Formatter设置JFormattedTextField,然后

    • 您不需要解析Float value(更好的方法是使用double)

    • 默认情况下,空coudl为0(零)值

    • ((Number)PrincipalTextField.getValue()).floatValue();

    • 的形式获取值
  4. 查看教程的代码示例,

答案 2 :(得分:1)

还要考虑InputVerifier中的Validating Input子类化,如here中所述。有一个相关的例子{{3}}。