stacklayouttest.java

来自「自己建立的项目」· Java 代码 · 共 64 行

JAVA
64
字号
package com.swtSample.layout;

import org.eclipse.swt.events.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.custom.StackLayout;
import org.eclipse.swt.SWT;

public class StackLayoutTest {
	public static void main(String[] args) {
		Display display = new Display();
		Shell shell = new Shell(display);
		StackLayout layout = new StackLayout();
		shell.setLayout(layout);
		StackLayoutSelectionAdapter adapter = new StackLayoutSelectionAdapter(
				shell, layout);
		Button one = new Button(shell, SWT.PUSH);
		one.setText("one");
		one.addSelectionListener(adapter);
		Button two = new Button(shell, SWT.PUSH);
		two.setText("two");
		two.addSelectionListener(adapter);
		Button three = new Button(shell, SWT.PUSH);
		three.setText("three");
		three.addSelectionListener(adapter);
		layout.topControl = one;
		shell.open();
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch()) {
				display.sleep();
			}
		}
		display.dispose();
	}
}

class StackLayoutSelectionAdapter extends SelectionAdapter {
	Shell shell;

	StackLayout layout;

	public StackLayoutSelectionAdapter(Shell shell, StackLayout layout) {
		this.shell = shell;
		this.layout = layout;
	}

	public void widgetSelected(SelectionEvent event) {
		Control control = layout.topControl;
		Control[] children = shell.getChildren();
		int i = 0;
		for (int n = children.length; i < n; i++) {
			Control child = children[i];
			if (child == control) {
				break;
			}
		}
		++i;
		if (i >= children.length) {
			i = 0;
		}
		layout.topControl = children[i];
		shell.layout();
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?