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()

  • 接下来,如果任何长度为零,您要做的是显示一个Dialog Box。这可以通过调用来完成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 FormatterJFormattedTextField,然后

    • 你不需要解析Float value(最好使用双精度)

    • 默认情况下,空可以是 0(零)值

    • 以形式取值 ((Number)PrincipalTextField.getValue()).floatValue();

  3. 查看教程的代码示例,

于 2012-09-07T09:05:22.887 回答
1

还要考虑子类化InputVerifier,如验证输入中所述。这里有一个相关的例子。

于 2012-09-07T10:58:51.577 回答