0

だから私はこれらの 2 つのテキスト ボックスを取得し、それらを連結してラベルに結果を表示しようとしています。例を見つけて、例のようにしましたが、何かが間違っています。だから、私は始めたばかりで、それを正しく行う方法を理解していないので、誰かが私が間違っていることを見ることができるかもしれません.

public class HomePage extends WebPage {

    private String fNumber="Big";
    private String sNumber=" text!";
    private String sResult=fNumber+sNumber;

    public HomePage() {

        PropertyModel<String> firstNumber = new PropertyModel<String>(this, "fNumber");
        PropertyModel<String> secondNumber = new PropertyModel<String>(this, "sNumber");

        add(new Label("message", "HelloWorld!"));

        add(new Label("result", sResult));

        Form<?> form = new Form("form");
        form.add(new TextField<String>("firstNumber", firstNumber));
        form.add(new TextField<String>("secondNumber", secondNumber));
        add(form);
    }
}

すっごく私はこれを作った

` add(new Label("メッセージ", "HelloWorld!"));

    add(new Label("result", new Model(numb.getsResult())));


    Form<?> form = new Form("form") ;

    form.add(new TextField<String>("firstNumber", new Model(numb.setfNumber())));
    form.add(new TextField<String>("secondNumber",new Model(numb.setsNumber())));
    add(form);`

そして、私は3つの文字列フィールドとゲッターとセッターを持つクラスを持っています.siiは、最後のコメントでいくつかのことを説明したことを理解しています。

4

2 に答える 2

2

結果を「再計算」する必要があります。Wicket の方法は、連結を行うラベルのモデルを定義することです。

add(new Label("result", new IModel<String>(){

@Override
public void detach() {
    // do nothing
}

@Override
public String getObject() {
    return fNumber + sNumber;
}

@Override
public void setObject(String object) {
    // do nothing
}
}));

さらに、例の PropertyModels を使用する必要があります。

于 2012-10-22T08:14:42.473 に答える
1

2 つの文字列を連結するには、通常 StringBuilder を使用します。

        PropertyModel firstNumber = new PropertyModel(this,"fNumber");
        PropertyModel secondNumber = new PropertyModel(this,"sNumber");
        PropertyModel resultNumber = new PropertyModel(this,"sResult");
        StringBuilder sResult = new StringBuilder((String) firstNumber.getObject());
        sResult.append((String) secondNumber.getObject());
        resultNumber.setObject(sResult.toString());

また、biziclop からのリンクを読んでください。非常に役立つはずです。

于 2012-10-22T15:31:41.973 に答える