2012-09-12 228 views
1

我有两个标签有自己的相应的意见。 tabview本身在滚动视图中。出于某种原因,滚动条不出现在较大的选项卡上。我设置了像这样的(工作)TabView的:SWT/JFace滚动查看不滚动

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到,但没有下面的内容,没有滚动条。任何人都可以看到,我做错了什么?

Thanx提前, 马库斯

+0

您是否尝试过:'scrolledComp.setMinSize(mainContent.computeSize(SWT.DEFAULT,SWT.DEFAULT))'? – Baz

+0

只是旁注:'GridLayout'的第一个参数是'numColumns'。不知道你为什么使用'GridData.FILL_BOTH'。 – Baz

+0

GridData.FILL_BOTH是一个修复错误的地方,之前没有8)Thanx,让它与computeSize一起工作。你不想让这个答案? –

回答

1

既然你设置你的最低高度手动500,ScrolledComposite不知道更好。

您应该使用内容的“真实”大小作为最小大小。您可以使用以下代码:

scrolledComp.setContent(mainContent); 
scrolledComp.setExpandHorizontal(true); 
scrolledComp.setExpandVertical(true); 
scrolledComp.setMinSize(mainContent.computeSize(SWT.DEFAULT, SWT.DEFAULT)); 
+0

短一句:有没有办法压制滚动条,不管是什么? –

+0

@MarcusToepper在谷歌搜索后,似乎这是不可能的。但我可能是错的... – Baz

+0

也没有任何结果。现在,'问题'是,scrollview也会滚动显示较小的视图。只是一个不便,但不是很好。我想,一个解决方法是重新计算标签更改的大小大小和重画scrollview,但这似乎是一个可怕的很多,只是为了摆脱一些额外的空间... –