ここでの SWT Composite オブジェクトの通常/一般的な慣行は何かを知りたいです。
Composite を追加するたびに (UI の例: TextBox または Button)、Composite 内で作成された UI が Composite の最初の端に揃えられないことがわかりました。(これは、コンポジットの背景色を設定することで確認できます)
TextBox UI の前の Composite 内にスペース/パディングがあります。以前の UI がコンポジット内で作成されていない場合、これにより、作成中の GUI フォームにずれが生じます。
それらを一致させるための一般的な慣行は何ですか?負のパディングを設定してコンポジットを後方に移動し、その中の UI が整列しているように見えるようにしますか?
以下サンプルコード!
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
GridLayout layout = new GridLayout();
layout.numColumns = 1;
layout.makeColumnsEqualWidth = false;
shell.setLayout(layout);
Text t1 = new Text(shell, SWT.SINGLE | SWT.BORDER);
t1.setText("Test box...");
Composite c = new Composite(shell, SWT.NONE);
// c.setBackground(new Color(shell.getDisplay(), 255,0,0));
layout = new GridLayout();
layout.numColumns = 2;
layout.makeColumnsEqualWidth = true;
c.setLayout(layout);
Text t2 = new Text(c, SWT.SINGLE | SWT.BORDER);
t2.setText("Test box within Composite... not aligned to the first textbox");
Button b = new Button(c, SWT.PUSH);
b.setText("Button 1");
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}