我是新来的,我想在我正在做的小型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循环执行此操作,但我不确定如何设置这样做。请帮忙!
答案 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)
必须为Number Formatter
设置JFormattedTextField
,然后
您不需要解析Float value
(更好的方法是使用double)
默认情况下,空coudl为0(零)值
以((Number)PrincipalTextField.getValue()).floatValue();
查看教程的代码示例,
答案 2 :(得分:1)
还要考虑InputVerifier
中的Validating Input子类化,如here中所述。有一个相关的例子{{3}}。