SWT中StackLayout简单示例
package com.huawei.swt.layout;
import org.eclipse.swt.widgets.Composite;
public class StackLLayout1 {
/**
* Launch the application.
*
* @param args
*/
public static void main(String[] args) {
Display display = Display.getDefault();
Shell shell = new Shell();
shell.setSize(450, 300);
shell.setText("SWT Application");
shell.setLayout(new FillLayout());
final Composite comp1 = new Composite(shell, SWT.NONE);
final StackLayout stackLayout = new StackLayout();
comp1.setLayout(stackLayout);
// 在comp1中创建两个文本框text
final Text txt1 = new Text(comp1, SWT.BORDER);
txt1.setText("txt1");
final Text txt2 = new Text(comp1, SWT.BORDER);
txt2.setText("txt2");
Composite comp2 = new Composite(shell, SWT.NONE);
comp2.setLayout(new RowLayout());
Button btnButton1 = new Button(comp2, SWT.NONE);
btnButton1.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
stackLayout.topControl = txt1;
comp1.layout();
}
});
btnButton1.setBounds(360, 10, 72, 22);
btnButton1.setText("显示txt1");
Button btnButton2 = new Button(comp2, SWT.NONE);
btnButton2.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
stackLayout.topControl = txt2;
comp1.layout();
}
});
btnButton2.setBounds(360, 80, 72, 22);
btnButton2.setText("显示txt2");
shell.open();
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
}
}