2

私はjsfとクラスを使用してこの計算機プログラムを作成しました。コマンドボタンを使用して数値を渡したり追加したりしました(最初の数値ではなくポケット計算機のように、2番目の数値の種類の計算機)ここに問題のあるコードのサンプルがあります

入力した値を追加したいので、たとえば1を3回クリックすると111になります

ここでは、入力された値は1として表示されますが、追加された値は常に同じです(1)クラスに@ApplicationScopedがあります

<h:inputText value="#{mbcalculator.result}"/>
    <h:commandButton value="1" action="#{mbcalculator.setNumber}">
        <f:setPropertyActionListener target="#{mbcalculator.enteredvalue}"
            value="1" />


       //mbcalculator class

    public String setNumber() {
    appendNumber(enteredvalue);

    return null;
}

public void appendNumber(String x) {
    StringBuffer buffer = new StringBuffer();
    buffer.append(x + "");
    String str = buffer.toString();
    appendedvalue = Integer.parseInt(str);
            result = appendedvalue;


    System.out.println("enter"+enteredvalue);
    System.out.println("append"+appendedvalue);
    System.out.println("result"+result);
}
4

1 に答える 1

0

appendNumber()あなたはresultそれに追加するのではなく、全体を上書きしています。

result = appendedvalue;

に実際に追加して、それに応じて修正してくださいresult

public void appendNumber(String x) {
    result = Integer.parseInt(result + x);
}
于 2012-11-02T17:18:22.633 に答える