Layout (SWT)
Mächte man ein Layout erzeugen, welches je nach Fensterbreite die Elemente nebeneinander oder untereinander anordnet, so ist die richtige Wahl das
ColumnLayout
Möchte man nachträglich das Layout neu berechnen, so genügt ein Aufruf der Methode
pack(true)
Beispiel für ein Layout:
…und der dazugehörige Code:
parent.setLayout(new GridLayout(2, false)); GridData gd = new GridData(SWT.LEFT, SWT.TOP, true, false); gd.horizontalAlignment = GridData.FILL; gd.grabExcessHorizontalSpace = true; Label labelName = new Label(parent, SWT.NONE); labelName.setText("Name:"); Text textName = new Text(parent, SWT.SINGLE | SWT.BORDER); textName.setLayoutData(gd); Label labelStreet = new Label(parent, SWT.NONE); labelStreet.setText("Straße:"); Text textStreet = new Text(parent, SWT.SINGLE | SWT.BORDER); textStreet.setLayoutData(gd); Label labelZipCity = new Label(parent, SWT.NONE); labelZipCity.setText("Plz/Ort:"); Composite composite = new Composite(parent, SWT.NONE); composite.setLayout(new GridLayout(2, false)); composite.setLayoutData(gd); UIControlsFactory.createText(composite); Text textCity = new Text(parent, SWT.SINGLE | SWT.BORDER); textCity.setLayoutData(gd); Label labelLand = new Label(parent, SWT.NONE); labelLand .setText("Land:"); CCombo cComboLand = new CCombo(parent, SWT.BORDER | SWT.READ_ONLY); cComboLand.setLayoutData(gd);