Мое текущее приложение - это приложение RCP, использующее инфраструктуру eclipse.Существует представление, составная часть которого присваивается прокручиваемому составному элементу, а затем все соответствующие составные элементы создаются с помощью 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, который будет динамически изменять MinSize для SCrolledLayout.
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);
Есть ли лучший способ сделать это, или я где-то обманываю.