Java - Netbeans中的GUI - 我有一个错误

时间:2013-10-16 00:11:32

标签: java netbeans

我正在尝试制作一个计算器,其中一部分是实现一个东西,如果它从第一个文本区域读取数字x,然后第二个文本区域为0,它将发出错误信息。以下似乎不起作用......

private void divideButtonActionPerformed(java.awt.event.ActionEvent evt){

    int number1, number2;
    int y = Integer.parseInt(this.firstInput.getText());
    if (y == 0) {
        JOptionPane.showMessageDialog(this, "Cannot divide by 0", "Error", JOptionPane.ERROR_MESSAGE);
    }
    try {
        number1 = Integer.parseInt(
                this.firstInput.getText());


    } catch (Exception e) {
        JOptionPane.showMessageDialog(this, "Bad first number", "Error", JOptionPane.ERROR_MESSAGE);
        return;
    }
    try {
        number2 = Integer.parseInt(
                this.secondInput.getText());
    } catch (Exception e) {
        JOptionPane.showMessageDialog(this, "Bad second number", "Error", JOptionPane.ERROR_MESSAGE);
        return;
    }

    int answer = number1 / number2;
    this.theAnswer.setText(
            "The calculated answer is: " + answer);
}                                            

它似乎没有显示我想要的错误。有人可以帮忙吗?

--------- ---------- EDIT

对不起的家伙我刚刚注意到它说的是this.firstInput而不是this.secondInput。 我完全面对对不起......

谢谢你!

1 个答案:

答案 0 :(得分:1)

除了您尝试检查第一个字段而不是第二个字段的值之外,代码的结构仍然允许执行计算,相反,您应该使用if-else声明,例如。

int number1, number2;
try {
    number1 = Integer.parseInt(
            this.firstInput.getText());


} catch (Exception e) {
    JOptionPane.showMessageDialog(this, "Bad first number", "Error", JOptionPane.ERROR_MESSAGE);
    return;
}
try {
    number2 = Integer.parseInt(
            this.secondInput.getText());
} catch (Exception e) {
    JOptionPane.showMessageDialog(this, "Bad second number", "Error", JOptionPane.ERROR_MESSAGE);
    return;
}
if (number2 == 0) {
    JOptionPane.showMessageDialog(this, "Cannot divide by 0", "Error", JOptionPane.ERROR_MESSAGE);
} else {
    int answer = number1 / number2;
    this.theAnswer.setText(
            "The calculated answer is: " + answer);            
}

}

此外,您已经完成了String的转换,您也可以使用已有的结果 - 或者尝试进行String比较,如果您想避免对话共...