1

授業がある:

public class PlayerResult implements Serializable {

    private static final long serialVersionUID = 1L;

    private long playerResultId;

    private Player player;

    private String score;

    private List<Result> results;
...
}

このクラスを改札テーブルに印刷するにはどうすればよいですか?最初の列はプレーヤー名と名前、次にresult.toString()のresult.size()列、最後の列はスコアである必要があります

ヘルプのためのthx

4

2 に答える 2

4

編集

申し訳ありませんが、私は最初に質問を理解しませんでした。

私はこれを試したことがありませんが(可能かどうかはわかりません) 、タグ(PlayerResultsの場合)<td>で行うように、ListViewをタグ(結果の場合)に適用することもできます。<tr>

Java:

List<PlayerResult> players = // ...
ListModel<PlayerResult> playersModel = new ListModel<PlayerResult>(players);
ListView<PlayerResult> list = new ListView<PlayerResult>("list", playersModel) {
    @Override
    protected void populateItem(ListItem<PlayerResult> item) {
        Label name = new Label("name", new PropertyModel<String>(item.getModel(), "player.name"));
        Label surname = new Label("surname", new PropertyModel<String>(item.getModel(), "player.surname"));
        Label results= new Label("results", item.getModelObject().getResults().size());

        ListView<Result> scoreList= new ListView<Result>("scoreList", item.getModelObject().getResults()){
             @Override
             protected void populateItem(ListItem<Result> resultItem) {
                   item.add(new Label("score", new PropertyModel<Integer>(resultItem.getModel(), "scoreValue ? ")));
             }
        }

        // ...

        item.add(name);
        item.add(surname);
        item.add(results);
        item.add(scoreList);
        // ...
    }
}

HTML:

<table>
    <tr wicket:id="list">
        <td><span wicket:id="name">[name label]</span></td>
        <td><span wicket:id="surname">[surname label]</span></td>
        <td><span wicket:id="results">[results label]</span></td>
        <!-- and now variable number of tds -->
        <td wicket:id="scoreList">
             <span wicket:id="score"></span>
        </td>
    </tr>
</table>
于 2012-08-17T08:53:24.140 に答える
2

すべてのプレーヤーの結果リストは同じサイズですか?次に、PlayerResultsを反復処理するIDataProviderを実装するだけです。

適切な列を追加します。

new PropertyColumn(Model.of( "Name")。 "player.name");

new PropertyColumn(Model.of( "Surame")。 "player.surname");

new PropertyColumn(Model.of( "Result 1")。 "results.0");

new PropertyColumn(Model.of( "Result 2")。 "results.1"); ..。

スヴェン

于 2012-08-17T09:02:55.170 に答える