1

我当前的应用程序是使用 Eclipse 框架的 RCP 应用程序。有一个视图,它的合成被赋予一个 ScrolledComposite,然后所有相关的合成都以 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);

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

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

有没有更好的方法来做到这一点,或者我在某个地方搞砸了。

4

0 回答 0