最近在用SWT 開發一個Java桌面程序,不同以往用AWT/SWING寫的程序。AWT/SWING寫的程序個人覺得界面很難看,總是不喜歡,而且運行速度也不行。所以看到用SWT程序運行的界面時,給了我一個驚喜。真是看不到以前AWT/SWING寫的界面的影子了,真看不出來是Java程序。SWT程序是調用的系統的小窗口部件,并不是像AWT/SWING自己構造部件,所以SWT程序界面是和操作系統保持一致的。雖然SWT程序還不能像AWT/SWING程序一樣運行在任何平臺,但是現階段SWT程序已經可以不用修改運行在windows, linux等幾個主要的平臺上面了,基本實現了其跨平臺性。由於以上幾個特性,使我對Java GUI編程又有了新的熱情。
SWT寫界面非常簡單,所有的組件都有個統一的構造方法,new Composite(Composite, Style),它去掉了AWT/SWING中用add()方法在面板中添加組件的方式,換成了在定義組件時,用第一個參數說明該組件是屬於那個面板的,另外還有一個可以選擇的組件的樣式,通過不同的樣式,形成組件不同的形態。
下面是一個最簡單的SWT窗口程序
package com.chengsi.main;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class Test3 {
public static void main(String[] args) {
Display display = Display.getDefault();//相當于顯示器,用來顯示窗口的組件
Shell shell = new Shell(); //主窗口組件
shell.setSize(500, 375);
shell.setText("SWT Application");
shell.open();
shell.layout();
//開始消息循環,直到用戶關閉窗口
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
}
}
另外,SWT的事件處理與AWT/SWING的事件處理機制是一樣的,可以和AWT/SWING一樣的寫代碼,非常方便。比如在上面程序中加入一個按鈕響應事件,用來顯示一個對話框。
package com.chengsi.main;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class Test3 {
public static void main(String[] args) {
Display display = Display.getDefault(); //相當于顯示器,用來顯示窗口的組件
final Shell shell = new Shell();//主窗口組件 ,要在匿名內部類中使用,所以用final修飾
shell.setSize(500, 375);
shell.setText("SWT Application");
shell.setLayout(new RowLayout());//設置布局,相當于AWT/SWING中的FlowLayout
shell.open();
shell.layout();
Button btn = new Button(shell, SWT.PUSH);//在shell面板中加入一個普通按鈕
btn.setText("單擊我");
//加入選擇事件監聽
btn.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
//彈出一個對話框
MessageDialog.openInformation(shell, "對話框", "按鈕單擊事件"); }
});
btn.pack();//以適當的大小顯示
//開始消息循環,直到用戶關閉窗口
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
}
}
分享到:
相关推荐
### Eclipse 开发桌面程序——基于SWT技术及WindowBuilder插件详解 #### 一、SWT技术概述 SWT(Standard Widget Toolkit)是IBM Eclipse项目的一部分,作为一个强大的GUI编程框架,SWT为开发者提供了丰富的组件和...
### SWT桌面程序开发实例图解教程 #### 一、SWT简介 SWT(Simple Widget Toolkit)是一款由Eclipse项目提供的跨平台GUI编程工具包,主要用于构建Java应用程序的用户界面。SWT支持多种操作系统和图形环境,如Windows...
在开发Java桌面应用时,最常见的就是将其打包成可执行的JAR文件。这一步骤不仅方便了程序的分发,还能够确保所有必需的类库和资源被正确地包含在内。 **准备工作:** 1. **创建JAR包:** - 在Eclipse中,选中项目...
**SWT教程——Java开发中的图形用户界面设计** SWT(Standard Widget Toolkit)是Java编程环境中用于构建桌面应用程序的一种GUI库。...通过深入学习,开发者可以熟练掌握如何用SWT构建高效、美观的Java桌面应用。
SWT,AWT/Swing外,java...做JAVA桌面窗口开发,我们有了更多的选择。此API是我自己生成的。对应的SWT版本是我网上下的最新的,版本是swt-3.4,里面没有API。网上也没找到最新版本的,我就自己尝试生成。呵呵。谢谢支持
在本SWT实例中,我们将深入探讨SWT的核心概念、优点以及如何在Java开发中使用它。 首先,SWT是基于事件驱动的,这意味着用户界面的组件可以响应用户的输入事件,如点击按钮或滚动条。这些事件通过事件监听器处理,...
Java SWT(Standard Widget Toolkit)是Java平台上用于创建桌面应用程序的一个库,它提供了丰富的用户界面元素,如按钮、文本框、列表等。SWT是Eclipse IDE的基础,它通过与操作系统直接交互来提供本地化的图形用户...
通过分析这个JavaDemo程序,我们可以深入研究上述知识点,并学习到如何利用SWT和WinBuilder的组合,构建高效、美观的Java桌面应用程序。同时,这个示例程序也可以作为模板,帮助初学者快速搭建自己的SWT项目。
Java 桌面程序的外观和速度总是和同一操作系统平台下的其它软件显得格格不入。对机器配置的需求也好像永无止境,这使得它们只能被一些总是拥有当前最高性能 PC 的程序员们所容忍,或是那些不在乎金钱和时间的专业...
Java SWT (Standard Widget Toolkit) 和 JFace 是两个用于构建图形用户界面(GUI)的库,它们都是Java编程语言的一部分,特别是在开发桌面应用程序时非常常用。本教程配套源码是为"可视化JAVA SWT JFACE GUI程序设计...
在描述中提到,现在可以通过特定的方法将SWT开发的程序应用于Web环境,这通常涉及到技术上的转换和适应。 将SWT程序移植到Web环境,意味着我们需要将桌面应用的特性转换为适合浏览器运行的代码。一种可能的方法是...
总之,SWT作为一种高性能且具有良好原生体验的Java图形界面开发工具包,极大地促进了Java在桌面应用程序领域的应用和发展。对于希望构建高质量GUI应用程序的开发者而言,SWT无疑是一个非常值得考虑的选择。
以上这些JAR文件共同构成了一个完整的64位SWT开发环境,开发者可以利用这些组件来快速构建功能丰富的Java桌面应用程序。需要注意的是,由于SWT是与操作系统紧密关联的,所以使用时需要选择对应操作系统的JAR版本。在...
该框架是一款以SWT和JFace为核心的Java桌面应用程序开发工具,集成了AWT和Swing组件,提供定制化界面美化和升级策略,生成跨平台且稳定的程序。项目包含146个文件,涵盖51个Java源代码文件、21个HTML文件、15个PNG...
这个“Java SWT完整教程”将引导你从基础到进阶,全面掌握SWT的使用,让你能够利用这个强大的工具包创建功能丰富、性能优秀的Java桌面应用程序。无论是初学者还是有经验的开发者,都能从中受益匪浅,提升你的GUI编程...
总之,Java64位SWT是Java GUI开发的重要工具,尤其适用于需要高性能、原生外观和感觉的桌面应用。使用Eclipse导入这些文件后,开发者可以便捷地利用SWT提供的功能,创建出满足需求的64位Java应用程序。
【SWT基础】 SWT(Standard Widget Toolkit)是IBM为Eclipse开发的GUI库,它的设计目标是提供一个高效且可移植的API,能够与操作...学习并掌握SWT和JFace,对于进行Eclipse插件开发或者桌面应用程序开发非常有帮助。
在"基于SWT Browser与Freemarker的Java桌面开发"实例中,我们将探讨如何结合这两种技术来构建现代、动态的Java桌面应用。SWT Browser组件允许开发者在Java应用中集成Web浏览器功能,这样就可以利用HTML、CSS和...
本SWT开发手册将深入讲解如何使用SWT中的基本控件,如按钮、文本和标签,以创建功能丰富的GUI应用。以下是对这些关键控件的详细介绍: 1. **按钮(Button)**:SWT提供了几种不同类型的按钮,包括普通按钮(Button)...