1

org.eclipse.swt.widgets.Listいくつかのアイテムを動的に追加するために使用しています。

ただし、各文字列のサイズは、 によって指定されたデフォルトの幅よりも大きくなっていますList

Stringに新しいものを追加するたびに、リストのサイズを再計算するにはどうすればよいListですか?

編集1
質問の素朴さで申し訳ありませんが、まだSWTの初心者です。

これは私がそれを作成した方法です:

Group parentGrp = new Group(threeColComposite,SWT.NONE);  
parentGrp.setText("Interfaces Present in Selected jar");  
parentGrp.setLayout(new GridLayout(1,false));  
parentGrp.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));  
myList = new List(parentGrp, SWT.BORDER | SWT.V_SCROLL | SWT.MULTI);  
myList.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

list親グループの唯一の子だったので、別のレイアウトは使用していません。レイアウトが使用されていない場合、それは間違っていますか?

編集2
@Baz:メソッドからの回答のスニペットを使用しましたcreateMiddleContent()

4

2 に答える 2

3

最善の方法は、獲得したカスタム リストを作成し (たとえば、 http ://www.snip2code.com/Snippet/11489/Custom-SWT-List-Box をチェックしてそのようなリストを作成します)、ここでイベントを直接管理することだと思います。

于 2013-10-21T17:49:50.887 に答える
0

Layout クラスとそのサブクラスは、間接的ではありますが、サイズ変更動作を提供します。レイアウトはリストの元のサイズをキャッシュし、リストにさらに (より長い) アイテムを追加した後でもそのサイズを使用します。修正は、キャッシュをフラッシュした後に特定のコントロールとその子をレイアウトするようにレイアウトに指示することです (すべて 1 つのレイアウト メソッド)。渡すウィジェット/コントロールは、リストのサイズが変更された場合に、リストの周囲にサイズ変更する必要があるウィジェットの数によって異なります。

もちろん、使用するレイアウトは、最初にウィジェットを配置したレイアウトと同じでなければなりません。

于 2012-10-28T18:04:11.633 に答える