ScrolledComposite显示两个滚动条,每个滚动条用于垂直和放大水平滚动

时间:2018-05-18 04:47:25

标签: eclipse scroll swt rcp composite-controls

我当前的应用程序是使用eclipse框架的RCP应用程序。有一个视图,其复合赋予滚动的复合,然后所有相关的复合都是用ScrolledComposite作为父。

protected void createContent(Composite parent) 
{
 ScrolledComposite form = new ScrolledForm(parent,SWT.H_SCROLL|SWT.V_SCROLL);
 GridLayout layout = new GridLayout(1, false);
 form.getBody().setLayout(layout);
 ......................
 .........................
}

问题在于,有时可以看到两个垂直滚动条和两个水平滚动条。一个是主视图,第二个是ScrolledComposite。

我已经实现了一个ResizeListener,它将动态更改SCrolledLayout的MinSize。

Rectangle rect = form.getClientArea();
form.setMinSize(SWT.DEFAULT,SWT.DEFAULT);

然而,有时仍然有两个Scrollbars可见,但它们没有用,它们看起来很烦人。因此,由于滚动条没有用,我在ResizeListener本身中禁用它们。

Rectangle rect = form.getClientArea();
form.getHorizontalBar().setVisible(false);
form.getVerticalBar().setVisible(false);
form.setMinSize(SWT.DEFAULT,SWT.DEFAULT);

有更好的方法可以做到这一点,还是我在某个地方搞定。

0 个答案:

没有答案