0

別々の JTextfields から 2 つの入力を計算し、コンボボックスで演算子を選択して、選択した演算子に基づいて結果を計算する必要があります。しかし、私の答えは 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;

    }

}
4

3 に答える 3

3

これは、結果の計算後に jLabel4 を更新していないためです。

s の後ifに別のものを追加する必要がありますjLabel4.setText(Integer.toString(result));

于 2011-01-12T11:00:48.807 に答える
2

このコードから、jLabel4は結果ラベルです。

あなたがやっていることは、最初に "0" を String Result に割り当て、これ ("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));


}
于 2011-01-12T11:02:58.823 に答える
1

メソッドを 2 つの部分に分ける必要があります。1 つは結果の計算を担当し、もう 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;
 }
于 2011-01-12T11:01:33.130 に答える