2011-01-12 2 views
0

Мне нужно вычислить два входа с отдельных полей JText, выбрать оператора в выпадающем списке и вычислить результат на основе выбранного оператора. Тем не менее, я получаю 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

Вы должны отделить метод на две части: одну ответственную для вычисления результата, а другой для отображения. В дополнение к этому вы, вероятно, должны использовать 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; 
} 
2

От этого кода jLabel4 является ярлыком результата.

Что вы делаете, сначала вы назначаете String Result с помощью «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)); 


} 
Смежные вопросы