public class UsingStackLayout {
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
shell.setLayout(new GridLayout());
final Composite parent = new Composite(shell, SWT.NONE);
parent.setLayoutData(new GridData(GridData.FILL_BOTH));
final StackLayout layout = new StackLayout();
parent.setLayout(layout);
final Button[] bArray = new Button[10];
for (int i = 0; i < 10; i++) {
bArray[i] = new Button(parent, SWT.PUSH);
bArray[i].setText("Button "+i);
}
layout.topControl = bArray[0];
Button b = new Button(shell, SWT.PUSH);
b.setText("Show Next Button");
final int[] index = new int[1];
b.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e) {
index[0] = (index[0] + 1) % 10;
layout.topControl = bArray[index[0]];
parent.layout();
}
});
shell.open();
while (shell != null && !shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
}
}