Mega Code Archive

 
Categories / Java Tutorial / SWT
 

Make more than one control to grab excess space in the same direction

If more than one control are grabbing excess space, the excess space is distributed to them evenly. import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.List; import org.eclipse.swt.widgets.Shell; public class GridLayoutGrabExcess {   public static void main(String[] args) {     Display display = new Display();     final Shell shell = new Shell(display);     GridLayout gridLayout = new GridLayout();     gridLayout.numColumns = 2;     gridLayout.makeColumnsEqualWidth = true;     shell.setLayout(gridLayout);     Button button1 = new Button(shell, SWT.PUSH);     button1.setText("button1"); // Default alignment     List list = new List(shell, SWT.BORDER);     list.add("item 1");     list.add("item 2");     list.add("item 3");     GridData gridData = new GridData();     gridData.grabExcessHorizontalSpace = true;     gridData.grabExcessVerticalSpace = true;     gridData.horizontalAlignment = GridData.FILL;     gridData.verticalAlignment = GridData.FILL;     list.setLayoutData(gridData);     Button button2 = new Button(shell, SWT.PUSH);     button2.setText("button #2");     GridData gridData2 = new GridData();     gridData2.grabExcessVerticalSpace = true;     gridData2.grabExcessHorizontalSpace = true;     gridData2.verticalAlignment = GridData.FILL;     gridData2.horizontalAlignment = GridData.FILL;     button2.setLayoutData(gridData2);     Button button3 = new Button(shell, SWT.PUSH);     button3.setText("3");     shell.setSize(450, 400);     shell.open();     while (!shell.isDisposed()) {       if (!display.readAndDispatch()) {         display.sleep();       }     }     display.dispose();   } }