1

それぞれのビューを持つ 2 つのタブがあります。タブビュー自体はスクロールビューにあります。何らかの理由で、スクロールバーが大きなタブに表示されません。私は(作業中の)タブビューを次のように設定しました:

public CustomerTab(Composite arg1, int arg2) throws SQLException {
    super(arg1, arg2);

    layout = new org.eclipse.swt.layout.GridLayout(GridData.FILL_BOTH, false);
    layout.numColumns = 1;
    this.setLayout(layout);

スクロールバーが表示されていないものは、次のように始まります。

public InvoiceTab(Composite parent, int arg2) throws Exception {

    super(parent, arg2);

    // new gridlayout and asign to this tab
    gridLayout = new org.eclipse.swt.layout.GridLayout(GridData.FILL_BOTH, false);
    gridLayout.numColumns = 3;
    this.setLayout(gridLayout);

私のアプリケーションでは、シェルを構成します。

@Override protected void configureShell(Shell shell) {

    super.configureShell(shell);
    shell.setSize(1130, 530);
    setShellStyle(SWT.SHELL_TRIM & (~SWT.RESIZE));
}

この方法でスクロールビューを作成します。

@Override protected Control createContents (Composite parent) {

    scrolledComp = new ScrolledComposite(parent, SWT.H_SCROLL | SWT.V_SCROLL);
    mainContent = new Composite(scrolledComp, SWT.NONE);
    mainContent.setLayout(new FillLayout());

    mainTabView = null;
    mainTabView = new MainTabView(mainContent);

    scrolledComp.setContent(mainContent);
    scrolledComp.setExpandHorizontal(true);
    scrolledComp.setExpandVertical(true);
    scrolledComp.setMinSize(1100, 500);

    return mainTabView;
}

何が起こるかというと、スクロールビューは 500 までしか表示されませんが、その下にはコンテンツもスクロールバーもありません。私が間違っていることを誰かが見ることができますか?

前もって感謝します、マーカス

4

1 に答える 1

1

最小の高さを手動で 500 に設定したため、ScrolledCompositeはよくわかりません。

コンテンツの「実際の」サイズを最小サイズとして使用する必要があります。次のコードを使用できます。

scrolledComp.setContent(mainContent);
scrolledComp.setExpandHorizontal(true);
scrolledComp.setExpandVertical(true);
scrolledComp.setMinSize(mainContent.computeSize(SWT.DEFAULT, SWT.DEFAULT));
于 2012-09-12T09:45:52.227 に答える