シェルでグリッド レイアウトを使用しています。ウィジェットの位置を制御したい。ご覧のとおり、一番下のボタンは 4 行目に配置する必要があります。私は windowbuilder プラグインを使用しており、必要な場所に配置できます。
問題は、ソース コードに配置命令が表示されないことです。それらをプログラム的な方法で配置するにはどうすればよいですか。ウィンドウ ビルダーが生成するソース コードを次に示します。
package dgsj.Chapter04.examples.ch4;
import org.eclipse.swt.widgets.*;
public class GridLayout2x2 {
private static GridData data_1;
private static GridData data_2;
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
shell.setMinimumSize(new Point(123, 30));
shell.setSize(126, 123);
GridLayout layout = new GridLayout();
layout.numColumns = 3;
shell.setLayout(layout);
GridData data = new GridData(GridData.FILL_BOTH);
data.grabExcessHorizontalSpace = false;
data.widthHint = 200;
data.grabExcessVerticalSpace = false;
Button one = new Button(shell, SWT.PUSH);
one.setText("one");
one.setLayoutData(data);
data = new GridData(GridData.FILL_BOTH);
Button two = new Button(shell, SWT.PUSH);
two.setText("two");
two.setLayoutData(data);
new Label(shell, SWT.NONE);
new Label(shell, SWT.NONE);
data_2 = new GridData(GridData.FILL_BOTH);
Button four = new Button(shell, SWT.PUSH);
four.setText("four");
four.setLayoutData(data_2);
new Label(shell, SWT.NONE);
new Label(shell, SWT.NONE);
new Label(shell, SWT.NONE);
new Label(shell, SWT.NONE);
new Label(shell, SWT.NONE);
Button btnNewButton = new Button(shell, SWT.NONE);
btnNewButton.setText("New Button");
data_1 = new GridData(GridData.FILL_BOTH);
data_1.grabExcessVerticalSpace = false;
data_1.grabExcessHorizontalSpace = false;
Button three = new Button(shell, SWT.PUSH);
three.setText("three");
three.setLayoutData(data_1);
shell.pack();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
}