Получение результата от калькулятора на Java - PullRequest
0 голосов
/ 12 января 2011

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

3 голосов
/ 12 января 2011

Это потому, что вы не обновляете jLabel4 после вычисления результата.

После if s вы должны добавить еще jLabel4.setText(Integer.toString(result));

2 голосов
/ 12 января 2011

Из этого кода 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));


}
1 голос
/ 12 января 2011

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