1

VaadinフレームワークでWebアプリケーションを開発しています。14列のテーブルがあります。最後の列には3つのアイコンがあり、私が抱えている問題は、テーブルがレンダリングされる時間の半分のように、右端のアイコンが垂直方向に「半分にカット」されることです。この問題を回避するために、問題を解決できると思うこの列に固定幅を設定しようとしましたが、何も起こりません。

私は従来のアプローチを使用しています:

simCardTable.setColumnWidth(actionColumn, 135);

ただし、列幅に設定した値に関係なく、列は同じままです...これがなぜであるかを誰かが知っていますか?追加する最後の列であるため、余裕がないからですか。

ところで、これは私が特定の幅を設定した唯一の列です。すべての復元列には、列ヘッダーの幅またはセルの内容によって指定された標準の幅があります。

どんな助けでも大歓迎です!

4

1 に答える 1

2

あなたの質問(「最後の列には3つのアイコンがあります」)から理解できるように、ColumnGeneratorを使用して、アイコン付きのこの最後の列を作成します。私が正しい場合、それはあなたがこのアイコンを中に含むある種のカスタムレイアウトを作成したことを意味します、この場合あなたはこれを働かせる必要があります:

final ColumnGenerator generator = new ColumnGenerator() {
            private static final long serialVersionUID = 1L;

            @Override
            public Component generateCell(Table source, final Object itemId, Object columnId) {
                final HorizontalLayout layout = new HorizontalLayout();
                layout.setSizeFull();

                Embedded icon1 = new Embedded();
                Embedded icon2 = new Embedded();
                Embedded icon3 = new Embedded();

                //Add some themeresource to embedded components

                //Do some listners to this icons

                layout.addComponent(icon1);
                layout.addComponent(icon2);
                layout.addComponent(icon3);

                //Set column with
                setColumnWidth(columnId, 100);

                return  layout;
                }
            };
于 2011-10-14T17:37:08.413 に答える