从Java中获取计算器的结果

时间:2011-01-12 10:53:43

标签: java calculator

我必须从单独的JTextfields计算两个输入,在组合框中选择一个运算符并根据所选的运算符计算结果。但是,我得到0作为我的答案。如何在不获得0的情况下计算结果?

private void jButton1_actionPerformed(ActionEvent e) {

    int x = Integer.parseInt(jTextField1.getText());
    int y = Integer.parseInt(jTextField2.getText());

    String Result = "0";
    jLabel4.setText(Result);
    int total = Integer.parseInt(Result);

    if(Operator.equals("+")) {
        total = x + y;
    }
    else if(Operator.equals("-")) {
        total = x - y;
    }
    else if(Operator.equals("*")) {
        total = x * y;
    }
    else if(Operator.equals("/")) {
        total = x / y;

    }

}

3 个答案:

答案 0 :(得分:3)

那是因为你在计算结果后没有更新jLabel4。

if之后,你应该添加另一个jLabel4.setText(Integer.toString(result));

答案 1 :(得分:2)

从此代码中,jLabel4是结果标签。

您正在做的是首先将字符串结果分配给“0”,然后将此设置为“(0”)作为文本然后进行计算。

您应该先做计算,然后设置结果。

private void jButton1_actionPerformed(ActionEvent e) {

    int x = Integer.parseInt(jTextField1.getText());
    int y = Integer.parseInt(jTextField2.getText());

    int total = 0;

    if(Operator.equals("+")) {
        total = x + y;
    }
    else if(Operator.equals("-")) {
        total = x - y;
    }
    else if(Operator.equals("*")) {
        total = x * y;
    }
    else if(Operator.equals("/")) {
        total = x / y;

    }

    jLabel4.setText(String.valueOf(total));


}

答案 2 :(得分:1)

您应该将方法分为两部分:一部分负责计算结果,另一部分负责显示。除此之外你可能应该使用double,否则除法会给你意想不到的结果,即0(例如在1/2的情况下)。

private void jButton1_actionPerformed(ActionEvent e) {

     int x = Integer.parseInt(jTextField1.getText());
     int y = Integer.parseInt(jTextField2.getText());

     double result = calculateResult(operator, x, y)
     jLabel4.setText(String.valueOf(result));
}

private double calculateResult(String operator, int x, int y) {

     if(operator.equals("+")) {
         total = x + y;
     }
     else if(operator.equals("-")) {
         total = x - y;
     }
     else if(operator.equals("*")) {
         total = x * y;
     }
     else if(operator.equals("/")) {
         total = x / y;

     }
     return total;
 }