SWT - alternierende Widgets

kangaroody

Grünschnabel
Hi,
weiß von euch jemand ob es möglich ist, ein beliebiges Widget aus nem GridLayout herauszunehmen und dafür ein anderes an die selbe Stelle zu setzen? Ich will halt ein paar RadioButtons haben, und je nachdem welcher RadioButton angeklickt wird, sollen dann unterschiedliche Widgets erscheinen. Komm da irgendwie nicht weiter...
 
Hallo!

Schau mal hier:
Code:
/**
  * 
  */
 package de.tutorials;
 
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.Text;
 
 /**
  * @author Tom
  * 
  */
 public class SWTChangeWidgetsExample {
 
 	/**
 	 * @param args
 	 */
 	public static void main(String[] args) {
 		Display display = new Display();
 		final Shell shell = new Shell(display);
 		shell.setText("SWTChangeWidgetsExample");
 
 		shell.setLayout(new GridLayout(2, true));
 
 		Button btn0 = new Button(shell, SWT.BORDER);
 		btn0.setText("change to textfield");
 
 		Button btn1 = new Button(shell, SWT.BORDER);
 		btn1.setText("change to combobox");
 
 		final Composite composite = new Composite(shell, SWT.NONE);
 		composite.setLayout(new FillLayout());
 		final Text widget = new Text(composite, SWT.BORDER);
 		widget.setText("user helfen usern");
 
 		Label lbl = new Label(shell, SWT.BORDER);
 		lbl.setText("tutorials.de");
 
 		btn0.addSelectionListener(new SelectionAdapter() {
 			public void widgetSelected(SelectionEvent e) {
 				composite.getChildren()[0].dispose();
 				Text txt = new Text(composite, SWT.BORDER);
 				txt.setText("user helfen usern");
 				composite.layout();
 				shell.layout();
 			}
 		});
 
 		btn1.addSelectionListener(new SelectionAdapter() {
 			public void widgetSelected(SelectionEvent e) {
 				composite.getChildren()[0].dispose();
 				Combo cbo = new Combo(composite, SWT.BORDER);
 		    	cbo.setItems(new String[] { "user", "helfen", "usern" });
 				composite.layout();
 				shell.layout();
 			}
 		});
 
 		shell.pack();
 		shell.open();
 
 		while (!shell.isDisposed()) {
 			if (!display.readAndDispatch()) {
 				display.sleep();
 			}
 		}
 	}
 
 }

Gruß Tom
 
Zurück