在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,代码如下:
效果如下:
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() ;
- }
- }
- }
- }
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() ; } } } }
效果如下:
相关推荐
在Java编程环境中,SWT(Standard Widget Toolkit)和AWT...总的来说,虽然SWT是Eclipse的主要GUI库,但通过桥接类,我们可以灵活地在SWT环境中使用AWT和SWING组件,以利用它们各自的优势来构建更丰富的用户界面。
在Java编程环境中,SWING和SWT(Standard Widget Toolkit)是两种常见的图形用户界面(GUI)库,用于创建桌面应用程序。然而,有时我们可能需要在这些应用中集成Web浏览功能,比如显示网页或者运行Web应用。这篇博客...
Swing Designer SWT 是一款强大的图形化工具,专为在Java环境中设计Swing和SWT用户界面而设计。这款插件是Eclipse IDE的一个扩展,它允许开发者通过直观的拖放方式构建用户界面,大大简化了GUI(图形用户界面)开发...
需要在32为浏览器中使用",这意味着这个库是针对32位系统的,如果你的应用程序或开发环境是32位的,你需要使用这个版本的SWT库才能正常运行。同时,"src中为源码,可以直接在项目中引用"意味着除了预编译的jar包之外...
在Java编程领域,Swing...综合这个压缩包中的练习,开发者可以通过运行和分析代码,了解Swing和SWT在实际项目中的应用,掌握组件的用法,学习布局设计,以及如何处理用户事件。这对于提高Java GUI编程技能非常有帮助。
Java是一种广泛使用的编程语言,在图形用户界面(GUI)设计领域提供了多种开发包,其中比较著名的有Swing、SWT和AWT。这三种技术各有特点和适用场景,在开发Java图形界面应用时,开发者需要根据实际需求选择最合适的...
swt swing awt的区别
在这篇文章中,我们将深入探讨Java Swing中的分页技术和SWT(Standard Widget Toolkit)的使用,同时也会提供一个项目实例以帮助理解。 首先,Java Swing是Java Foundation Classes (JFC)的一部分,它是一个轻量级...
SWT是基于操作系统原生控件的,因此在性能和外观上更接近系统风格,而SWING则使用自绘组件,提供了更多的自定义和跨平台支持。在本项目中,可能根据需求选择合适的一个或两者结合使用。 jxBrowser是一款Java嵌入式...
swing2swt java应用开发包,貌似现在很少了
- **事件处理**:Swing 中使用 ActionListener 等监听器,而在 SWT 中则使用 Listener 或 Event 等方式处理事件。 - **布局管理**:Swing 提供了多种布局管理器(如 BorderLayout、GridLayout),而 SWT 则使用不同...
实际工作的一个Swing项目,初始用户名密码为:app!
在Java桌面应用开发领域,Swing和SWT(Standard Widget Toolkit)是两个常用的库,用于创建用户界面。本篇文章将深入探讨Eclipse中的Swing和SWT插件,特别是jigloo插件。 Swing是Java Foundation Classes (JFC)的一...
选择“帮助”>“Eclipse Marketplace”,在搜索框中输入“WindowBuilder”或“Swing SWT Builder”,找到相关插件后点击安装。 - 方法二:手动安装。将下载的插件文件(通常是.zip或.jar格式)复制到Eclipse的...
AWT是Java最初的GUI库,它的优点在于其稳定性和广泛的可用性,因为它是Java标准的一部分,无需额外安装即可在任何Java运行环境中使用。然而,AWT的设计采用了一个最低共同标准(LCD)的方法,导致其组件和功能相对...
- **Composite**:类似于Swing中的Panel,作为其他UI组件的容器。 2. **org.eclipse.swt.layout**:提供了一系列布局管理器,如FillLayout、GridLayout等,用于管理组件的布局方式。 3. **org.eclipse.swt.custom...
AWT的最大优势在于它作为Java标准库的一部分,无需额外安装即可在任何Java环境中使用。此外,AWT经过多年的迭代和发展,已经非常稳定可靠。 ##### AWT的组成部分 - **GUI组件**:AWT提供的基本组件较为有限,例如...
在Java编程领域,Swing、AWT和SWT都是用于构建图形用户界面(GUI)的框架。本篇文章将详细介绍如何在Eclipse集成开发环境中(IDE)搭建这些框架的开发环境,以及可以使用的相关插件。 首先,让我们从AWT(Abstract ...
在Java编程语言中,SWT(Standard Widget Toolkit)、AWT(Abstract Window Toolkit)和Swing是用于构建图形用户界面(GUI)的三个重要库。这三个库各有特点,但都提供了事件处理机制,允许用户与应用程序进行交互。...
Java中的AWT(Abstract Window Toolkit)和Swing都是用于构建图形用户界面(GUI)的工具包,它们都属于Java基础类库(Java Foundation Classes, JFC)。...在实际开发中,两者也可以结合使用,以充分利用各自的特点。