(あなたが投稿したリンクは400エラーを出しました)
私の問題が同じかどうかはわかりませんが、ScrolledComposite でも切り捨ての問題に遭遇しました。問題は、コンポジットのサイズを変更してスクロールすると、スクロールバーが表示されるようになったときに、コントロールがスクロールバーが占めるスペースを考慮していないことでした。これを解決するために、スクロールされたコンポジットの 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);
}
}
お役に立てれば!
編集:うわー、OPの日付に気づきませんでした. これがいずれかの方法で誰かを助けることを願っています...