ブール値をvaadinグリッドのチェックボックスとして表示しようとしています。チェックボックス付きの2つの列が必要なため、複数選択モードを使用できません。チェックボックス シェルの列にはキャプションがありますが、チェックボックス自体のシェルにはキャプションがありません。誰にもアイデアはありますか?
質問する
6814 次
3 に答える
5
このレポhttps://github.com/vaadin/grid-renderers-collection-addonを使用することをお勧めします。このプロジェクトは Vaadin 開発者によって開発され、CheckboxRenderer クラスを提供します。デモで見ることができますが、使い方はとても簡単です。
まず、リポジトリと依存関係をプロジェクトに追加する必要があります。Maven では次のようになります。
...
<repositories>
...
<repository>
<id>vaadin-addons</id>
<url>http://maven.vaadin.com/vaadin-addons</url>
</repository>
</repositories>
...
<dependencies>
...
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>grid-renderers-collection-addon</artifactId>
<version>0.94</version>
</dependency>
</dependencies>
...
次に、次のように使用できます。
grid.getColumn(columnName).setRenderer(new CheckboxRenderer());
リスナーを簡単に追加することもできます:
CheckboxRenderer renderer = new CheckboxRenderer();
grid.getColumn(columnName).setRenderer(renderer);
grid.getColumn(columnName).setHeaderCaption("");
renderer.addClickListener(e -> System.out.println("Hello listener!"));
于 2016-12-20T23:14:29.520 に答える
1
チェックボックス用に生成された列を追加する必要があります
GeneratedPropertyContainer gpcontainer = new GeneratedPropertyContainer(container);
gpcontainer.addGeneratedProperty("columnName",
new PropertyValueGenerator<CheckBox>() {
@Override
public CheckBox getValue(Item item, Object itemId,
Object propertyId) {
// set checkBox listener etc. in here
return new CheckBox();
}
@Override
public Class<CheckBox> getType() {
return CheckBox.class;
}
});
Grid grid = new Grid(gpcontainer);
ここの「GeneratedPropertyContainer」セクションで、より詳細な例を見つけることができます。
https://vaadin.com/docs/-/part/framework/datamodel/datamodel-container.html#datamodel.container.gpc
編集:列に「ComponentRenderer」も設定します
mainGrid.addColumn(COLUMN).setRenderer(new ComponentRenderer())
于 2016-11-07T12:24:20.013 に答える