2012-04-03 20 views
0

私はコンポジットを持っており、それにテーブルを追加したいと思います。これまでのところとても良いですが、テーブルには入力がないため、コンポジットにヘッダのみが表示されます。しかし、私はテーブルがデフォルト(最小)の高さを持つようにしたい(幅はコンポジットのGridLayoutによって管理されるべきです)。 コンポジットは、その親の垂直と水平の間隔をつかむので、テーブルのための十分なスペースが必要です。 私はこのようなテーブルを追加します。SWT:computeSize()は効果がありません

//comp is my composite 
TableViewer viewer = new TableViewer(comp); 
viewer.getTable().setHeaderVisible(true); 
//Add two TableViewerColumns 
//300 should be the minimum/default height 
viewer.computeSize(SWT.DEFAULT, 300); 

あり、複合に追加他に何もありませんし、複合体は、親からすべての空きスペースをつかむように見えるが、テーブルには300の高さに展開しません(幅があります正しい!)。

私はあなたが私の問題を理解することを願って:)

答えて

3

computeSizeは、テーブルの推奨サイズを表すPointを返します - レイアウトが推奨サイズ

を無視することができますので、これは実際にコンポーネントのサイズを設定しません。あなたがテーブルのための絶対的な固定の高さが必要な場合

、あなたはのGridLayoutレイアウトを使用して、テーブルのためのGridDataを設定するには、テーブルの親を設定することによってこれを行うことができます。

comp.setLayout(new GridData()); 

gridData = new GridData(); 
gridData.heightHint = 300; 

viewer.getTable().setLayoutData(gridData); 
+0

はどうもありがとうございました! :) –

+0

@Chris White:別のシステム解像度またはフォントでログインした場合、このテーブルの高さが同じに見えますか? – user1168608

関連する問題