【发布时间】:2016-02-17 15:38:12
【问题描述】:
我正在为我的学校制作一个平均成绩计算器。我在 JavaSwing 中做的非常简单。您有 7 个文本字段(其中的类),您可以在其中输入您的最终成绩。当您点击“计算”时,它会根据我学校使用的公式计算平均成绩。
我的问题是,当有人输入大于 20(最高成绩)的数字时,它会显示一个错误对话框,但它仍然会计算平均成绩,我只想让它显示错误对话框。
代码如下:
public void actionPerformed(ActionEvent e) {
double getValuePort = Double.parseDouble(textField.getText());
double getValueIng = Double.parseDouble(textField_1.getText());
double getValueFil = Double.parseDouble(textField_2.getText());
double getValueEF = Double.parseDouble(textField_3.getText());
double getValueHCA = Double.parseDouble(textField_4.getText());
double getValueDes = Double.parseDouble(textField_5.getText());
double getValuePT = Double.parseDouble(textField_6.getText());
double getValueMedia = (3*(getValuePort+getValueIng+getValueFil+getValueEF+getValueHCA)/5+getValueDes+2*getValuePT)/6;
JOptionPane.showMessageDialog(contentPane, "A tua média é de: " + getValueMedia);
System.out.println(getValueMedia);
if (getValuePort > 20 || getValueIng > 20 || getValueFil > 20 || getValueEF > 20 ||
getValueHCA > 20 || getValueDes > 20 || getValuePT > 20) {
JOptionPane.showMessageDialog(contentPane, "A nota não pode ser superior a 20!", "ERRO", JOptionPane.ERROR_MESSAGE, null);
}
}
【问题讨论】:
-
不会将计算和显示
getValueMedia的部分放在else-block 中解决问题吗?此外,请考虑使用JSpinners 代替文本字段。这样你甚至不需要检查。 -
也许我会用它。也许我会制作两个版本的程序只是为了好玩。谢谢。
标签: java swing calculator