2011-01-12 71 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)); 


}