堆栈布局
- 多个窗口叠加,有顺序有先后,需要的显示在最顶层
- 可以在各种窗口,面板中堆栈式布局
先创建几个Composite
问题情景:在composite中堆栈式布局,当点击bottom_1时将composite_1展示,当点击bottom_2将composite_2展示
(composite_1,composite_2是依据上截图创建好的composite)
- 创建堆栈布局
private StackLayout stackLayout = new StackLayout();
- 开始时,将composite设为堆栈布局(容纳composite_1,composite_2)----
composite直接默认填充式布局
Composite composite = new Composite (shell, SWT.NONE);
composite.setLayout(stackLayout);
- 创建所有的面板——Composite
Composite_1 composite_1 = new Composite_1 (Composite, SWT.NONE);
Composite_2 composite_2 = new Composite_2 (Composite, SWT.NONE);
- 设置composite在堆栈顶
stackLayout.topControl = composite;
- 点击bottom_1时将composite_1展示—在bottom_1的点击事件中的代码
//修改堆栈式布局的栈顶面板
stackLayout.topControl = composite_1;
//刷新布局
compositet.layout();
- 点击bottom_2时将composite_2展示—在bottom_2的点击事件中的代码
//修改堆栈式布局的栈顶面板
stackLayout.topControl=composite_2;
//刷新布局
compositet.layout();
为了后期维护,创建一个XXXDataDirck类保存在XXX中要显示的Composite
/**
* 维护堆栈式布局——数据导航
*/
import org.eclipse.swt.custom.StackLayout;
import org.eclipse.swt.widgets.Composite;
public class CompositeDataDirck {
//创建堆栈布局
public static StackLayout stackLayout = new StackLayout();
public static Composite_1 composite_1;
public static Composite_2 composite_2;
}
- 使用:CompositeDataDirck.composite_1
- 后续所有在composite下的面板都放在这个工具类下