`
fortianwei
  • 浏览: 59703 次
  • 性别: 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记事本小例子

    编写的java桌面程序,通过SWT的GUI组件做的记事本

    java SWT官网例子

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

    多个SWT例子

    里面有多个SWT和JFACE的例子,包括Table,Tree,List等等,真心不错的!

    swt创建tree的例子

    swt创建tree的例子 swt创建tree的例子 swt创建tree的例子

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

    SWT并发例子(后台耗时线程)前台点击按钮,后台执行一个耗时操作。

    swt Tree 例子项目代码

    org.eclipse.swt.widgets.Tree 一颗树的加载和展示,完整的一个工程

    SWT 各种小示例集中

    SWT 各种小示例集中,确对最全,涵盖了SWT中各基础控件和jface的控件使用

    SWT使用例子

    Button,Label,Text,Combo,List,Menu,Composite,Group,TabItem,FillLayout,SWT监听事件的使用等等例子!

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

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

    swt中treeview和tableview实例

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

    基于SWT和Hibernate的应用例子

    前台为SWT界面,后台线程通过hibernate实现数据库操作

    SWT例子文件

    http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fsamples%2Forg.eclipse.swt.examples%2Fdoc-html%2Fswt_manual_setup.html 如果上述地址打不开,可以参考以下具体操作步骤 ...

    SWT Tree 完整的树例子源码

    完整的用SWT树例子源码,有注释,实现联动。结构清晰,适合新手使用。

    使用 SWT 写图形化界面的例子(eclipse)

    SWT 无疑是迄今写图形化界面最好的工具了,这个是在eclipse工具下写的SWT例子,希望和大家一起进步,项目中如果要使用SWT的可以学习一下 :&gt;

    SWT的简单实例

    SWT的简单实例,涉及到了BUTTON,TEXT,COMBE,SHELL等组件,对于初步学习 SWT是个很好的例子。

    SWT的详解,例子,介绍

    基于SWT和eclipse的开发越来越多,于是GUI的测试也越发显得重要,SWVBOT工具就是为了方便GUI的测试而出的新一个测试工具。。。 提供资源共大家学习

    eclipse官方网站上的SWT例子(用306个)

    本人辛苦下载的eclipse官方网站上的swt例子,本来使用rcp项目里的,现在rcp项目做完了,和大家共享一下。

    SWT/Jface 开发入门指南

    SWT/Jface 开发入门指南 介绍以下方面的内容: ? 设定 swt 以及 JFace 的开发环境 ? swt 的一些简单部件(widget)介绍 ? JFace 的一些入门性介绍 ... 通过一些简单的例子说明如何利用 swt 和 JFace 编写图形化应用程序

    swt/jface实例开发

    本资源深入浅出,以实际开发为向导,并附有全部原代码,本人觉得是初学者的 经典参考资料

Global site tag (gtag.js) - Google Analytics