SWT でネストされた 2 つのコンポジットの上側の間隔を変更することはできますか?
たとえば、以下のコードを使用すると、次のような結果が得られます。
ここに示すように、赤と青のコンポジットの上面の間にスペースがないようにしたいと思います。
( を使用して) 2 つのコンポーネントの高さを同じにしようとしましたGridData
が、うまくいきませんでした。
public class CompositeSnippet
{
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
shell.setLayout(new GridLayout());
Composite c1 = new Composite(shell, SWT.NONE);
GridData c1GridData = new GridData(100, 50);
c1.setLayoutData(c1GridData);
c1.setLayout(new GridLayout());
c1.setBackground(display.getSystemColor(SWT.COLOR_BLUE));
Composite c2 = new Composite(c1, SWT.NONE);
GridData c2GridData = new GridData(50, 50);
c2.setLayoutData(c2GridData);
c2.setBackground(display.getSystemColor(SWT.COLOR_RED));
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}
SWT のレイアウトに関するこの記事に基づくと、この間隔は青色のコンポジットのトリミングが原因である可能性があります。Composite を拡張してメソッドをオーバーライドする独自のカスタム ウィジェットを作成しようとしましたcomputeTrim(...)
が、それも機能しませんでした...
PSこの質問はすでに尋ねられているようですが、 stackoverflowに関連するものは見つかりませんでした。これがすでに解決されている場合は、適切なディスカッションを教えてください。投稿が重複していることをお詫びします。