为了这东西,搞的我头都疼了,找了好多书,看了很多贴子,都没说这个的。后来还是不小心弄出来的。
下面的一个例子,有一个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布局会更简单方便,事实却是如此。
要有其他更好的方法,麻烦留个言,谢谢
分享到:
相关推荐
SWT(Standard Widget Toolkit)是由Eclipse基金会开发的一个用于创建图形用户界面(GUI)的开源库,它为Java应用程序提供了一种与平台无关的方式来构建原生外观的用户界面。IBM作为Eclipse的主要贡献者之一,对SWT...
9. **国际化与本地化**:SWT 支持应用程序的国际化,可以轻松地切换不同语言的界面。 10. **最佳实践**:在实际开发中,应考虑 SWT 应用的可移植性,避免过于依赖特定平台的功能。同时,合理的事件处理和布局设计也...
SWT,全称为Standard Widget Toolkit,是Eclipse项目下的一个开源图形用户界面(GUI)工具包,主要用于构建Java应用程序的用户界面。它提供了一系列丰富的组件,如按钮、文本框、菜单等,使得开发者能够创建出功能...
SWT(Standard Widget Toolkit)是Eclipse基金会提供的一种用于创建Java GUI应用程序的开源库,它提供了丰富的用户界面组件,如按钮、文本框、菜单等,让开发者能够构建出美观且功能丰富的图形用户界面。在“SWT登录...
SWT,全称为Standard Widget Toolkit,是一个开源的GUI(图形用户界面)编程框架,主要用于Java应用程序。它由IBM开发,最初是为了改善Java的GUI开发体验,尤其是在解决AWT(Abstract Windowing Toolkit)存在的问题...
此外,由于SWT是为Eclipse平台专门设计的,因此对于那些基于Eclipse的应用程序来说,使用SWT可以简化开发过程并提高效率。 #### 3. SWT应用程序的组成 SWT应用程序通常由以下几个部分组成: - **窗口**:应用程序...
在SWT中,开发者可以构建功能丰富的应用程序,包括多媒体播放器。全屏的SWT多媒体播放器是利用SWT库实现的能够支持全屏模式的媒体播放软件。 首先,我们要理解SWT的核心概念。SWT是一种原生API的封装,它直接与操作...
SWT(Standard Widget Toolkit)是Eclipse开源组织提供的一款用于创建Java图形用户界面(GUI)的库,它允许开发者创建与本机系统风格一致的窗口应用程序。标题提到的"用SWT做的Windows自带的计算器",意味着这个项目...
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编程中一种常见且实用的技术。 首先,我们要理解...
与Java的另一GUI库AWT和Swing相比,SWT提供了更接近底层系统的能力,使得开发者可以创建出性能更高、外观更接近操作系统原生风格的应用程序。 1. SWT的核心概念: - 控件(Widgets):SWT中的控件是用户界面的基本...
Eclipse RCP,全称Eclipse Rich Client Platform,是一个用于构建桌面应用程序的框架,它基于Java,由Eclipse基金会提供。Eclipse RCP的核心概念是模块化,通过插件(Plug-ins)机制来构建可扩展的应用程序。以下是...