我在使用GUI的java程序上工作,我遇到了一个问题,每当我试图从文本字段中添加值,一个是缺少它不工作,我得到一个错误,但如果所有这些都是可用的,我得到正确的答案,我怎么能添加没有所有的值?
JButton btnCheckOut = new JButton("CHECK OUT");
btnCheckOut.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
double apples, strawberries, watermelon, tomatoe, carrot, beef, lamb, payment;
apples = Double.parseDouble(textField.getText());
strawberries = Double.parseDouble(textField_1.getText());
watermelon = Double.parseDouble(textField_2.getText());
tomatoe = Double.parseDouble(textField_3.getText());
carrot = Double.parseDouble(textField_4.getText());
beef = Double.parseDouble(textField_5.getText());
lamb = Double.parseDouble(textField_6.getText());
payment = (apples*8)+(strawberries*10)+(watermelon*14)+
(tomatoe*5)+(carrot*6)+(beef*25)+(lamb*20);
DecimalFormat df = new DecimalFormat("###.##");
textField_7.setText(String.valueOf(df.format(payment)));
}
});
创建例如getDoubleValue,在读取时应用于所有项。简单:
apples = getDoubleValue( textField.getText() );
...
...
然后public double getDoubleValue( String txt ) {
double d = 0d;
try {
if( txt != null && !txt.isEmpty() ) {
d = Double.parseDouble( txt );
}
} catch(Exception ex) {}
return d;
}
(这也将照顾"脏输入",如果文本字段不包含数字,它将在解析期间将其设置为零)。
创建textFields时,将那里的文本初始化为0。像
JTextField textField_1 = new JTextField("0");
或者,你可以加上
if(textField.getText() == ""){
textField.setText("0");
}
在进行数学运算之前,创建一个IF
语句,如果其各自的TextField为空,则将变量设置为zero
。
if(textfield.getText().isEmpty())
{
apples = 0;
}