2012-09-07 174 views
2

我是新来的,我想在我正在做的一个小型Java项目上获得一些帮助。这是代码片段,我需要帮助:检查是否为空JFormattedTextField

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,或RATETEXTFIELD,OR TimeTextField不是由用户填写,如果是这样,显示问他一个对话框/她重新检查他们。文本字段是JFormattedTextField变量。我意识到我可以用if/else或while循环来做到这一点,但我不知道如何设置。请帮忙!

回答

2

你可以做这样的事情:

  • getText()回报你一个字符串值。所以你总是可以调用length()并检查长度是否为0。 (*我建议呼吁length()移除任何空格之前呼吁字符串trim()

  • 下,如果任何长度来是零,你想要做的是显示对话框。这可以通过拨打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。变量的约定是撰写使用混合大小写字母变量名开头的小写字母

+0

啊,谢谢。我曾尝试使用trim()和length()方法,但似乎没有正确使用它们。关于命名约定的事情是新的......不只是以小写字母开头,然后是大写字母的方法,就像在“showMessageDialog”中一样?我也在学习Objective-C,其中变量的大写方式是我完成的。也许我只是感到困惑。但非常感谢。 – SRSR333

+0

@ user1654223:不,变量也遵循相同的模式。但很高兴帮助:) – Sujay

2
  1. 你错过的理由,为什么有JFormattedTextField

  2. 必须设置Number FormatterJFormattedTextField,那么

    • 你不需要解析Float value(更好的可以是使用双)

    • 空coudl是0(零)以默认的形式

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

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