Sponsored link
レイアウト別 Controlのサイズ指定
基本的に、レイアウトを使用した場合は、
controlのsetLayoutDataメソッドを使用します。(指定できないLayoutもあります。)
その場合、ControlインスタンスにsetSize()やsetBounds()で指定しても、
初期化・リサイズなどレイアウトされたときに、値が変わります。(setSizeを使いたい場合はLayoutを使わない)
レイアウトなし
control.setSize() 又は control.setBounds()を使う。
FormLayout
FormDataインスタンスのwidth・height変数で指定します。
例
shell.setBounds(0,0,200,100);
FormLayout layout=new FormLayout();
shell.setLayout(layout);
Button button1=new Button(shell,SWT.NONE);
button1.setText("1");
FormData data=new FormData();
data.width=40;
data.height=40;
button1.setLayoutData(data);
FillLayout
無し
parentのcontrolのサイズを変更するべき
GridLayout
GridDataインスタンスのwidthHint・heightHint変数で指定します。
最小値になります。
例
shell.setBounds(0,0,200,100);
GridLayout layout=new GridLayout();
layout.numColumns=2;
shell.setLayout(layout);
Button button1=new Button(shell,SWT.NONE);
button1.setText("1");
GridData data=new GridData();
data.heightHint=40;
data.widthHint=40;
button1.setLayoutData(data);
RowLayout
rowDataインスタンスのwidth・height変数に指定します。
例
shell.setBounds(0,0,200,100);
RowLayout layout=new RowLayout();
shell.setLayout(layout);
Button button1=new Button(shell,SWT.NONE);
button1.setText("1");
RowData rowData=new RowData();
rowData.width=100;
rowData.height=40;
button1.setLayoutData(rowData);
StackLayout
無し
parentのcontrolのサイズを変更するべき
