我当前的应用程序是使用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);
有更好的方法可以做到这一点,还是我在某个地方搞定。