ScrolledComposite, показывающий две полосы прокрутки каждая для вертикальной и горизонтальной прокрутки - PullRequest
0 голосов
/ 18 мая 2018

Мое текущее приложение - это приложение 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);

Есть ли лучший способ сделать это, или я где-то обманываю.

...