在SWT出现之前,已经有众多的Swing程序和控件被开发出来,为了充分利用这些现有资源,SWT需要提供一种在SWT中使用Swing的途径。
Swing是通过在AWT的Canvas控件上绘图以显示各种控件,而AWT的控件与SWT的原理相似,都是直接对应到操作系统上的资源,因此只要利用SWT模拟出AWT的Canvas,Swing的控件就可以运行在上面了,因马刺,SWT提供了一个org.eclipse.swt.awt.SWT_AWT类,它通常被称为SWT_AWT桥。
在SWT_AWT中,提供了一个方法用于从SWT的Composite容器得到一个AWT的Frame容器new_Frame(Composite composit).
既然得到了一个AWT Frame,就可以向这个Frame中添加一个Swing的一个容器JPanel,之后的工作就和纯Swing编程一样了。
这种解决方案复杂且效率低下,往往是不得已而为之,就好象戴着手套和MM牵手一样,完全不对味。但除非你打算用SWT来重写,否则也就这一条路可走的了。
下面的例子,在SWT的Composite上添加了一个Swing的Button,代码如下:
import java.awt.BorderLayout;
import java.awt.Frame;
import javax.swing.JButton;
import javax.swing.JPanel;
import org.eclipse.swt.SWT;
import org.eclipse.swt.awt.SWT_AWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class test {
/**
* @param args
*/
public static void main(String[] args) {
Display display = Display.getDefault();
Shell shell = new Shell(display);
shell.setBounds(100, 100, 200, 100);
shell.open() ;
Composite composite = new Composite(shell ,SWT.EMBEDDED);
composite.setBounds(0, 0, 200, 100);
Frame frame = SWT_AWT.new_Frame(composite);
frame.setLayout(new BorderLayout());
JPanel panel = new JPanel();
panel.setLayout(null);
frame.add(panel,BorderLayout.CENTER);
JButton button = new JButton();
button.setBounds(10, 10, 180, 20);
button.setText("Swing Button");
panel.add(button);
while(!shell.isDisposed()){
if(!display.readAndDispatch()){
display.sleep() ;
}
}
}
}
效果如下:
- 大小: 5.4 KB
分享到:
相关推荐
NULL 博文链接:https://wenhai.iteye.com/blog/697993
swt swing awt的区别
NULL 博文链接:https://gxblluojialin.iteye.com/blog/2028156
Swing 和 SWT,AWT 技术都是在 Java 图形化界面设计中常用的开发包,在进行 Java GUI 编程时,大家或许经 常徘徊在 SWT,Swing,AWT 之间选择,哪一个更合适自己? 本文简单介绍了三者中各自的功能特点,以及之间的区别...
swing2swt java应用开发包,貌似现在很少了
在大部分情况中,决定都是在 Swing 与结合了 JFace 的 SWT 之间进行的。通常来说,每个工具包都非常完整且功能强大,足以构建功能完善的 GUI,但是 Swing 通常要比单独使用 SWT(不使用 JFace 时)更好。Swing 具有...
实际工作的一个Swing项目,初始用户名密码为:app!
Composite相当于SWING中的Panel对象,充当着构件容器的角色,当我们想在一个窗口中加入一些构件时,最好到使用Composite作为其它构件的容器,然后再去*.layout包找出一种合适的布局方式。SWT对构件的布局也采用了...
SWT Designer 适用于eclipse3.2及以上版本
在SWT之前,Sun已经提供了一个跨平台GUI开发工具包AWT (Abstract Windowing Toolkit).AWT框架不使用原生窗口部件(native widgets),一直未能突破LCD问题。LCD问题导致了一些主要平台特征的遗失。
SWT、Swing 或 AWT:哪个更适合您
里面有每个题目的截图和相关的代码,是经过反复修改和优化的,都是可以直接运行的。其中有简单计算器和日历等
swt开发需要的jar包,32位。需要在32为浏览器中使用。src中为源码,可以直接在项目中引用。也可以使用打好的jar包。开发图形化程序使用。1.0.2版本
SWT&Swing.Designer_Window.Builder.Pro_v6_for_Eclipse3.2_Keygen,是eclipse的插件,开发swt的工具
SWT&Swing.Designer_Keygen
AWT的初始版本是基于在简单用户界面中开发小applet程序而设计的,与之相比,当前的AWT做了很大的改进,它提供事件模型重新设计、剪贴板和数据传输支持以及打印和无鼠标操作等功能。从而与Parc Place的VisualWork或...
Eclipse Swing Swt builder 插件安装包及安装说明 非常好用 我们学校好多同学一直用的
多个实现比对,jxBrower 调度网页性能更优,再加上分片echart渲染,嘎嘎香 ,完整项目可运行假数据支撑图表
SWT,AWT/Swing外,java的另一种桌面窗口程序的开发包。做JAVA桌面窗口开发,我们有了更多的选择。此API是我自己生成的。对应的SWT版本是我网上下的最新的,版本是swt-3.4,里面没有API。网上也没找到最新版本的,我...
本教程详细介绍了 java开发中关于awt swing swt 的论述