`
fortianwei
  • 浏览: 60901 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

SWT的小例子

阅读更多

        经常有人抱怨java的awt,swing窗口太难看,和系统的很不协调,那么就用SWT吧,这个是eclipse基金会为了将eclipse实现的更人性化而开发的一组基于操作系统原生窗口的API。和wx,gtk,qt等图形用户界面库开发比较类似,开发流程等都可以举一反三。

         下面一个Helloworld的例子:

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionAdapter;
import javax.swing.JOptionPane;
public class hello {
	public static void main(String []s){
		//Display是与系统线程打交道用的,与操作系统图形库交互
                Display dis=new Display();
		//GridLayout 有两个构造函数,一个是空的,还一个是
		//GridLayout(int colsNum,boolean makeColumnsEqualWidth)
		//用过swing的人都知道GridLayout是按列算的,行只是随之变化
		//的,所以第一个参数指明有几列。第二个参数指明是否没列都等宽
		GridLayout gl=new GridLayout(3,false);
		//shell表示一个窗口基础模板,相当于swing中的Container,
		//窗口指定上级模板是Display就表示要作为顶级窗口来显示.
		Shell shell=new Shell(dis);
		shell.setText("Helloworld Example!");
		shell.setSize(200, 300);
		//给shell加上布局管理器
		shell.setLayout(gl);
		for(int i=0;i<5;i++){
			//作为基于操作系统原生界面的GUI库类(如wx,gtk,qt等)而言,一般都是在定义
			//一个对象(组件,控制器等等)的时候,直接指定他所要放上去
			//的父模板,下面的代码表示这个Button对象放到窗口对象shell
			//上,另外,和swing另一个不同点是他在定义的时候指定类型,而不是像swing中
			//再定义一个新的类别,比如下面的SWT.RADIO在swing中对应JRadioButton。
			Button button=new Button(shell,SWT.RADIO);
			button.setText("button"+i);
			button.setSize(new Point(20,20));
			button.addSelectionListener(new SelectionAdapter(){			
				public void widgetSelected(SelectionEvent e){
					//内部类来处理事件,很常见的一种手法。另外还可以在外部写一个类继承
					//一个Adapter类或者实现Listener接口两种方式,我故意用swing的
					//JOptionPane对比一下,基于操作系统的原生窗口和JVM生成窗口对比
					JOptionPane.showMessageDialog(null,((Button)e.getSource()).getText());
				}
			});
			
		}
		//从下面开始又是和swing完全不同的了,shell.open()将shell打开监听所有事件。
		//一直等到用户关闭程序再dis.dispose()回收垃圾。
		shell.open();
		while (!shell.isDisposed()) {
			if (!dis.readAndDispatch())
				dis.sleep();
		}
		dis.dispose();
	}
}

 结果如下:

很显然,原生窗口看的更自然一些,当然,swing更亮些

分享到:
评论

相关推荐

    SWT examples,SWT官方例子

    SWT examples,SWT官方例子:http://www.eclipse.org/swt/examples.php 该页面所要下载的例子 其中,swt的例子在\plugins\org.eclipse.swt.examples.source_3.7.0.v3740f.jar中

    Java桌面程序SWT记事本小例子

    首先,SWT是Eclipse项目的一部分,它提供了一系列原生的窗口小部件,如按钮、文本框、菜单等,这些小部件能够与操作系统底层交互,从而提供更好的性能和视觉效果。相比Java Swing,SWT更加轻量级,且通常被认为有更...

    java SWT官网例子

    java的一套GUI库,eclipse就是用...这套例子是swt官网上的小型例子,每个文件介绍一个简单的功能。 官方网址 http://www.eclipse.org/swt/snippets/ 需要的界面效果可以再官方网址上找到说明,再查看对应的java文件即可

    多个SWT例子

    综上所述,"多个SWT例子"提供了学习和实践SWT与JFace的宝贵资源,对于想要深入理解和掌握这两个库的Java开发者来说,是一份非常有价值的参考资料。通过研究这些示例,可以提升GUI编程技能,更好地将SWT和JFace应用到...

    swt小技巧,SWT的SHELL样式

    ### SWT的SHELL样式详解 #### 一、SWT.SHELL样式概述 SWT(Standard Widget Toolkit)是Eclipse平台上用于构建用户界面的一种强大的工具包。它提供了丰富的控件和功能,可以创建出高性能且美观的图形用户界面。在...

    SWT使用例子

    在"SWT使用例子"这个主题中,我们涵盖了多个核心组件和布局管理器的用法,这些都是构建SWT应用的基本元素。下面将逐一详细解释这些知识点: 1. **Button**: Button是GUI中最基础的元素之一,用于表示用户可以进行的...

    swt Tree 例子项目代码

    在这个名为“swt Tree 例子项目代码”的工程中,我们主要关注的是如何使用`org.eclipse.swt.widgets.Tree`类来创建和管理树形结构的数据展示。 `Tree`是SWT中的一个关键组件,用于构建类似于Windows资源管理器或...

    Eclipse+SWTJFace开发实战精解,SWT例子,Eclipse开发入门与项目实践+源代码

    4. **SWT例子**:资源包中的SWT例子可能包括如何使用SWT创建各种控件、布局管理、事件处理等内容。这些实例可以帮助开发者理解SWT的工作原理,并提供实际操作经验。 5. **Eclipse开发入门**:对于初学者,资源包...

    SWT 各种小示例集中

    本压缩包“SWT 各种小示例集中”显然是一个包含多种SWT控件和JFace技术的示例集合。JFace是基于SWT的一个高级UI框架,简化了开发过程,特别是在数据绑定、表单构建和对话框设计等方面。 在这些示例中,你可能会发现...

    SWT并发例子(后台耗时线程)

    在这个并发例子中,我们关注的是如何在SWT应用中正确处理耗时的后台任务,以避免阻塞用户界面(UI)线程,即事件调度线程。 首先,了解Java中的线程模型至关重要。Java应用程序通常由主线程运行,这个主线程负责...

    基于SWT和Hibernate的应用例子

    标题“基于SWT和Hibernate的应用例子”涉及到两个关键的Java技术:SWT(Standard Widget Toolkit)和Hibernate。这两个工具在软件开发中都有重要的作用,尤其是对于构建用户界面和管理数据库操作。 SWT是Eclipse...

    swt创建tree的例子

    以上就是一个简单的SWT Tree组件创建的例子。在实际应用中,你可以通过递归或者循环来动态加载大量数据,或者自定义TreeColumn来展示多列数据。SWT还提供了许多高级特性,如Tree的拖放操作、图像支持、检查框等等,...

    swt教程 有关SWT怎么应用

    这个例子创建了一个简单的窗口,包含两个按钮。`Display`类代表一个窗口系统,`Shell`类表示窗口本身,而`GridLayout`用于布局管理。`Button`类则用于创建按钮,`SWT.PUSH`是按钮类型。 SWT提供了一系列丰富的组件...

    java swt自定义控件

    下面是一个简单的自定义按钮控件的例子,它在按钮上显示一个自定义的图标。 ```java import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.GC; import org.eclipse.swt.graphics.Image; import org....

    SWT插件中文教程SWT常用方法

    这些资源有助于更直观地理解教程内容,同时提供实际操作的例子。 总的来说,SWT插件的常用方法涵盖了控件的创建、布局管理、事件处理等多个方面,学习并掌握这些方法对于编写高效、美观的Java GUI应用至关重要。...

    java SWT教程

    这个例子展示了如何创建一个基本的SWT窗口,并在其中放置一个文本框。`Display`负责管理窗口,`Shell`是窗口对象,`Text`是文本输入组件。程序会持续运行,直到用户关闭窗口。 总结,SWT提供了丰富的控件和高效的...

    swt中treeview和tableview实例

    swt中treeview和tableview实例,有助于理解这两个控件的使用。另外附带html页面。。可读性更强。

    swt/jface实例开发

    【SWT/JFace实例开发】是一份针对Java GUI编程的学习资源,主要聚焦于SWT(Standard Widget Toolkit)和JFace这两个强大的图形用户界面库。SWT是Eclipse项目的一部分,它提供了一套与操作系统直接交互的原生控件,...

    SWT 弹出对话框 可以选择的图标种类

    在描述中提到的例子中,`MessageBox`被创建时,传入了两个常量`SWT.OK`和`SWT.CANCEL`,这意味着对话框将包含一个“确定”按钮和一个“取消”按钮。`messageBox.open()`方法显示对话框,并等待用户进行选择。如果...

    SWT/JFACE客户端登录窗口例子

    在这个“SWT/JFACE 客户端登录窗口例子”中,我们可以预期会看到如何使用这两个库来创建一个基本的登录窗口。通常,这样的窗口会包含用户名和密码输入框,以及登录、取消等按钮。以下是一些可能涉及的知识点: 1. *...

Global site tag (gtag.js) - Google Analytics