Eclipse插件开发系列5.SWT中的布局管理器(3)
来源:互联网 发布:vscode调试安卓 编辑:程序博客网 时间:2024/05/25 20:01
*************************************************************************************作者:陈刚,桂林人,97年毕业于广西师范大学数学系,专注于java平台。现(2004.2-?)暂在IBM中国研究中心进行Eclipse插件的开发。Email: glchengang@163.comblog: glchengang.yeah.net*************************************************************************************
StackLayout称做堆栈式布局,所谓堆栈式就象一付叠在一起的扑克牌,一叠UI面板只显示位于最上面的那个面板。如下图,是Eclipse中比较典型的用到堆栈式布局的界面(打开方法:主菜单窗口-->首选项)。右边部分就是一个堆栈式的布局,当左边选不同的项,右边就显示这一项相应的面板。
?
StackLayout布局的使用是比较简单的。下面我们来写一个用StackLayout的例子,代码如下:
/*?* 陈刚 ,创建日期 2004-6-10?* ?* Email: glchengang@yeah.net ?* Blog : glchengang.yeah.net?*/package net.yeah.glchengang.layout;
import org.Eclipse.SWT.SWT;import org.Eclipse.SWT.custom.StackLayout;import org.Eclipse.SWT.events.SelectionAdapter;import org.Eclipse.SWT.events.SelectionEvent;import org.Eclipse.SWT.events.SelectionListener;import org.Eclipse.SWT.layout.FillLayout;import org.Eclipse.SWT.layout.RowLayout;import org.Eclipse.SWT.widgets.Button;import org.Eclipse.SWT.widgets.Composite;import org.Eclipse.SWT.widgets.Display;import org.Eclipse.SWT.widgets.Shell;import org.Eclipse.SWT.widgets.Text;
public class StackLayoutApp {
??? /*???? * 因为要在按钮b1,b2的事件中调用,所以以下变量必须定义成属性(类变量)???? * 否则在按钮b1,b2的事件中是访问不到的???? */??? private Composite c;??? private Text t1;??? private Text t2;??? private Text t3;??? private StackLayout stackLayout = new StackLayout();
??? public static void main(String[] args) {??????? StackLayoutApp window = new StackLayoutApp();??????? window.open();??? }??? public void open() {??????? Display display = new Display();??????? Shell shell = new Shell();??????? shell.setLayout(new FillLayout());??????? shell.setText("SWT Application");??????? //--------------核心代码如下:start------------------------ ??????? {??????????? /*???????????? * 在c面板下有两个Text框,因为c为stackLayout布局,???????????? * 所以这两个Text框是重叠在一起的???????????? */??????????? c = new Composite(shell, SWT.NONE);??????????? c.setLayout(stackLayout);
??????????? t1 = new Text(c, SWT.BORDER);??????????? t1.setText("11111111111111");
??????????? t2 = new Text(c, SWT.BORDER);??????????? t2.setText("222222222222");??????? }??????? {??????????? /*???????????? * 建立两个按钮来改变上面两个text框的显示???????????? */??????????? Composite composite = new Composite(shell, SWT.NONE);??????????? composite.setLayout(new RowLayout());
??????????? Button b1 = new Button(composite, SWT.NONE);??????????? b1.setText("显示111111111");??????????? b1.addSelectionListener(new SelectionListener() { //点击事件 ??????????????? public void widgetSelected(SelectionEvent e) {??????????????????? /*****************************************************???????????????????? * --------下面两句是StackLayout的关键----------------???????????????????? ****************************************************/??????????????????? stackLayout.topControl = t1; //将t1框显示??????????????????? c.layout(); //将界面刷新一下,否则显示上会没任何反映的??????????????? }??????????????? public void widgetDefaultSelected(SelectionEvent e) {}??????????? });
??????????? Button b2 = new Button(composite, SWT.NONE);??????????? b2.setText("显示2222222222");??????????? //这里也可以用SelectionAdapter这个适配器,它是SelectionListener的空实现??????????? b2.addSelectionListener(new SelectionAdapter() {??????????????? public void widgetSelected(SelectionEvent e) {??????????????????? stackLayout.topControl = t2;??????????????????? c.layout();??????????????? }??????????? });
??????? }
??????? //--------------核心代码如上:end------------------------??????? ??????? shell.open();??????? while (!shell.isDisposed()) {??????????? if (!display.readAndDispatch())??????????????? display.sleep();??????? }??? }}
运行效果图如下:
?
点击按钮"显示11111"时,图变化如下:
?
点击按钮"显示22222"时,图变化如下:
?
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>- Eclipse插件开发系列5.SWT中的布局管理器(3)
- Eclipse插件开发系列5.SWT中的布局管理器(4)
- SWT布局管理器
- SWT布局管理器
- SWT布局管理器
- SWT布局管理器
- RCP,SWT与Eclipse插件开发点滴
- Eclipse开发Swing, SWT, RCP的插件
- SWT界面开发Eclipse插件WindowBuilder
- Eclipse插件开发系列
- Eclipse安装swt插件
- Eclipse安装swt插件
- eclipse 安装 swt 插件
- Eclipse安装swt插件
- Eclipse开发经典教程:SWT布局(一)
- Eclipse开发经典教程:SWT布局(二)
- Eclipse开发经典教程:SWT布局(三)
- Eclipse开发经典教程:SWT布局(四)
- 什么是面向服务体系结构?(二)
- 深入分析J2ME平台MIDP低级事件处理机制
- 禁止QQ与QQ协议
- 《Effective java》读书笔记之二
- WebLucene 的更新备忘(2004-06-29)
- Eclipse插件开发系列5.SWT中的布局管理器(3)
- 中间件概念
- oracle proceduce
- 动态生成JAVA代码
- JSP标签自定义(1)---useBean
- 介绍Java中的assert用法
- Java Servlet基本方法介绍
- The Ten Most Dangerous Mistakes YOU Probably
- SCJP考试认证复习笔记系列之三