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のサイズを変更するべき