(ссылка, которую вы разместили, выдает ошибку 400)
Не уверен, что моя проблема была такой же, но я столкнулся с проблемой усечения со ScrolledComposite. Проблема заключалась в том, что когда я изменил размер Composite для прокрутки и полоса прокрутки стала видимой, элементы управления не учитывали пространство, занимаемое полосой прокрутки. Чтобы решить эту проблему, я добавил своего рода рекурсивный бит кода в прослушиватель Resize прокручиваемого композита:
После того, как вы установили размер вашего композитного содержимого, проверьте, стала ли видимой полоса прокрутки scrolledComposite (например, getVerticalBar ()). Если это так, отправьте новое событие Resize вашему слушателю. Вот фрагмент из моего кода ...
public void handleEvent(Event event)
{
int newWidth = scrolledComposite.getSize().x;
boolean hasScroll = false;
ScrollBar scrollBar = scrolledComposite.getVerticalBar();
if (scrollBar.isVisible())
{
hasScroll = true;
newWidth -= scrolledComposite.getVerticalBar().getSize().x;
}
newWidth -= 8;
Point size = contentComposite.computeSize(newWidth, SWT.DEFAULT);
contentComposite.setSize(size);
int scroll_multiplier = size.y / 50;
scrollBar.setIncrement(scroll_multiplier);
/**
* If the scroll bar became visible because of the resize, then
* we actually need to resize it again, because of the scroll
* bar taking up some extra space.
*/
if (scrollBar.isVisible() && !hasScroll)
{
scrolledComposite.notifyListeners(SWT.Resize, null);
}
}
Надеюсь, это поможет!
Редактировать: вау, я не заметил дату ОП. Надеюсь, это поможет кому-то в любом случае ...