SWT でブレッドクラム コントロールを作成しています。これはファイル システム上の場所を検索するためのバーと JFace テーブルを表示し、そのバーの下に TableViewer を使用して結果、つまり指定された場所にあるフォルダーとファイルを表示します。問題は、データがテーブルに読み込まれ、ウィンドウを最大化しようとすると、テーブルが折りたたまれ (完全に消えることもあります)、その下に空のスペースが残り、スクロール可能になります。以下は最大化する前の画像です。
これは、ウィンドウを最大化した後に発生します。
これを修正するにはどうすればよいですか?ビューアーを作成するための私のコードは次のとおりです。
DirectoryViewer container = new DirectoryViewer(this, SWT.BORDER|SWT.V_SCROLL|SWT.FULL_SELECTION);
GridData conData = new GridData();
conData .horizontalAlignment = SWT.FILL;
conData.verticalAlignment = SWT.FILL;
conData .grabExcessHorizontalSpace = true;
conData.grabExcessVerticalSpace = true;
conData .horizontalSpan = 3;
container.getTable().setLayoutData(conData);
そして、DirectoryViewer のコンストラクター:
public DirectoryViewer(Composite parent, int style) {
super(parent, style);
Table table = getTable();
GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
gridData .horizontalSpan = 3;
table.setLayoutData(gridData);
createColumns();
table.setHeaderVisible(true);
setContentProvider(new ContentProvider());
}