2011-01-12 116 views
0

我必须计算来自单独JTextfields的两个输入,在组合框中选择一个运算符,并根据所选运算符计算结果。但是,我得到0作为我的答案。我怎样才能计算结果没有得到0?从Java计算器中获取结果

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

这是因为您在计算结果后没有更新jLabel4。

if年代后,你应该有添加其他jLabel4.setText(Integer.toString(result));

1

你应该方法分成两个部分:一部分负责结果的计算和其他显示。除此之外,你可能应该使用双倍,否则该部门会给你意想不到的结果,即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; 
} 
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)); 


}