`
andrew28
  • 浏览: 36126 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

SWT应用程序切换Shell中的Composite

阅读更多
为了这东西,搞的我头都疼了,找了好多书,看了很多贴子,都没说这个的。后来还是不小心弄出来的。

下面的一个例子,有一个Shell和两个Composite组成,每个Composite中各方一个Button,当点Button 时就切换到另一个Composte。过程是这样,在事件处理中创建待显示的Composite,然后摧毁当前的Composite,最后调用Shell的Layout()方法。

import org.eclipse.swt.*;
import org.eclipse.swt.events.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;

public class G {
	public static void main(String[] args) {
		Display d = Display.getDefault();
		Shell s = new Shell(d);
		new T(s, SWT.NONE);
		s.setLayout(new FillLayout());
		s.open();
		s.pack();

		while (!s.isDisposed()) {
			if (!d.readAndDispatch()) {
				d.sleep();
			}
		}
		d.dispose();
	}
}



class T extends Composite {
	public T(Composite p, int style) {
		super(p, style);
		this.setLayout(new FillLayout());
		final Button b = new Button(this, SWT.NONE);
		b.setText("dd");
		b.addSelectionListener(new SelectionAdapter() {
			
			@Override
			public void widgetSelected(SelectionEvent e) {
				Shell s = b.getShell();
				new R(s, SWT.NONE);
				System.out.println("yes");
				b.getParent().dispose();
				s.layout();
			}
		});
	}
}

class R extends Composite {
	public R(Composite p, int style) {
		super(p, style);
		this.setLayout(new FillLayout());
		final Button b = new Button(this, SWT.NONE);
		b.setText("ee");
		b.addSelectionListener(new SelectionAdapter() {
			
			@Override
			public void widgetSelected(SelectionEvent e) {
				Shell s = b.getShell();
				new T(s, SWT.NONE);
				b.getParent().dispose();
				s.layout();
			}
		});
	}
}



今天有人跟我说,用StackLayout布局会更简单方便,事实却是如此。


要有其他更好的方法,麻烦留个言,谢谢
分享到:
评论
1 楼 331008019 2010-04-07  
没有必要整得这么麻烦啦,直接用 StackLayout 布局就可以啦

相关推荐

    IBM GUI库SWT教程

    SWT(Standard Widget Toolkit)是由Eclipse基金会开发的一个用于创建图形用户界面(GUI)的开源库,它为Java应用程序提供了一种与平台无关的方式来构建原生外观的用户界面。IBM作为Eclipse的主要贡献者之一,对SWT...

    SWT 资料

    9. **国际化与本地化**:SWT 支持应用程序的国际化,可以轻松地切换不同语言的界面。 10. **最佳实践**:在实际开发中,应考虑 SWT 应用的可移植性,避免过于依赖特定平台的功能。同时,合理的事件处理和布局设计也...

    SWT 案例之学习精华

    SWT,全称为Standard Widget Toolkit,是Eclipse项目下的一个开源图形用户界面(GUI)工具包,主要用于构建Java应用程序的用户界面。它提供了一系列丰富的组件,如按钮、文本框、菜单等,使得开发者能够创建出功能...

    swt登录实例

    SWT(Standard Widget Toolkit)是Eclipse基金会提供的一种用于创建Java GUI应用程序的开源库,它提供了丰富的用户界面组件,如按钮、文本框、菜单等,让开发者能够构建出美观且功能丰富的图形用户界面。在“SWT登录...

    SWT 编 程 总 结

    此外,由于SWT是为Eclipse平台专门设计的,因此对于那些基于Eclipse的应用程序来说,使用SWT可以简化开发过程并提高效率。 #### 3. SWT应用程序的组成 SWT应用程序通常由以下几个部分组成: - **窗口**:应用程序...

    全屏的SWT多媒体播放器

    在SWT中,开发者可以构建功能丰富的应用程序,包括多媒体播放器。全屏的SWT多媒体播放器是利用SWT库实现的能够支持全屏模式的媒体播放软件。 首先,我们要理解SWT的核心概念。SWT是一种原生API的封装,它直接与操作...

    用SWT做的WIndows自带的计算器

    SWT(Standard Widget Toolkit)是Eclipse开源组织提供的一款用于创建Java图形用户界面(GUI)的库,它允许开发者创建与本机系统风格一致的窗口应用程序。标题提到的"用SWT做的Windows自带的计算器",意味着这个项目...

    Eclipse_Swt_Jface_核心应用_部分19

    4.1 SWT应用程序基本结构 40 4.2 Display类 42 4.2.1 Display类概述 42 4.2.2 Display类常用方法 42 4.3 Shell类 45 4.3.1 Shell类概述 45 4.3.2 不同窗口的样式 46 4.3.3 应用多个样式 47 4.3.4 ...

    动态彻换控件_列子

    `SWT`提供了丰富的控件集合,允许开发者构建与操作系统紧密集成的应用程序。本例子“动态彻换控件_列子”专注于使用`SWT`来实现窗口中的控件动态更新和切换,这是GUI编程中一种常见且实用的技术。 首先,我们要理解...

    snippetsSwtDemo

    与Java的另一GUI库AWT和Swing相比,SWT提供了更接近底层系统的能力,使得开发者可以创建出性能更高、外观更接近操作系统原生风格的应用程序。 1. SWT的核心概念: - 控件(Widgets):SWT中的控件是用户界面的基本...

    eclipse rcp 插件开发学习笔记.pdf 1-14章

    Eclipse RCP,全称Eclipse Rich Client Platform,是一个用于构建桌面应用程序的框架,它基于Java,由Eclipse基金会提供。Eclipse RCP的核心概念是模块化,通过插件(Plug-ins)机制来构建可扩展的应用程序。以下是...

Global site tag (gtag.js) - Google Analytics