`

SWT实例学习代码例子 -- 学好swt,色色就可以写桌面应用了

阅读更多

包名称 package cn.iamsese.swt.study ;

 

定义一个类来做运行时的入口,这样可以减少main方法的使用,使自己更能进入SWT的学习

 

/**
 * 运行控制器类
 */
 
public class Runner {
	

	public static void main(String[] args) {		
		SimpleShell simpleShell = new SimpleShell(ExampleClassName.DefaultWindow);
		//SimpleShell simpleShell = new SimpleShell(ExampleClassName.ChildShell);
	}	
}

 定义一个类用于分辨不同的demo例子,使得可以传入不同的构造函数到同一的构造函数处,以后没建立一个新实例,就在其中添加一个常数,使用16进制,因为好标识

 

/**
 * 实例类的名字 -- 通过在构造函数中调用不同的参数值来运行不同的实例程序
 * cn.iamsese.swt.study
 * Author: vb2005xu [JAVA菜鸟]
 */
interface ExampleClassName {
	public final static int DefaultWindow = 0x1 ; //缺省实例
	public final static int ChildShell = 0x2 ; //子窗口实例
}

 

导入的包 -- 以后按需要会添加

import org.eclipse.swt.* ;
import org.eclipse.swt.widgets.*;

 

 

每添加一个例子,就在其中添加一些代码,后面会陆续跟新一些模板代码,但是大体东西不变

 

/**
 * 所有例子的外壳代码
 * cn.iamsese.swt.study
 * Author: vb2005xu [JAVA菜鸟]
 */
class SimpleShell {
	private Display display ;
	private Shell shell ;
	
	public SimpleShell(String title){
		this.display = new Display();
		this.shell = new Shell(this.display);		
		this.shell.setText(title);
		this.shell.setSize(500,500);
		SimpleShellUtil.setShellAtCenter(this.shell);
	}
	
	public SimpleShell(int className){
		this("第一个SWT例子: cn.iamsese.swt.study.SimpleShell");
		this.shell.open();
		switch (className) {
			case ExampleClassName.ChildShell:
				this.childShellTest(this.shell);
				break;
	
			default:
				break;
		}
		
		while(! this.shell.isDisposed()){
			if ( ! this.display.readAndDispatch() ){
				this.display.sleep();
			}	
		}
		
		this.display.dispose();
	}
	
	public void childShellTest(Shell shell){
		//非模态对话框
		ChildShell child1 = new ChildShell(shell);
		//模式对话框 -- 只禁用父窗体
		ChildShell child2 = new ChildShell(shell,SWT.DIALOG_TRIM|SWT.APPLICATION_MODAL);		
		//模式对话框 -- 禁用系统窗体
		ChildShell child3 = new ChildShell(shell,SWT.DIALOG_TRIM|SWT.SYSTEM_MODAL);	
	}
}

 

 

代码例子1 -- ChildShell  每个代码例子,基本都是自包含的

/**
 * 子 窗口实例
 * cn.iamsese.swt.study
 * Author: vb2005xu [JAVA菜鸟]
 */
class ChildShell {
	
	public ChildShell(Shell parent)
	{
		Shell child = new Shell(parent);
		child.setText("第二个SWT例子: cn.iamsese.swt.study.ChildShell");
		child.setSize(400,100);
		child.open();	
	}
	public ChildShell(Shell parent,int style)
	{
		Shell child = new Shell(parent,style);
		child.setText("第二个SWT例子: cn.iamsese.swt.study.ChildShell");
		child.setSize(400,100);
		child.open();	
	}

}

 

 

 

分享到:
评论
2 楼 vb2005xu 2009-01-21  
3. 修改MenuDemo类:

/**
 * 与菜单相关的代码例子
 * cn.iamsese.swt.study
 * Author: vb2005xu [JAVA菜鸟]
 */
class MenuDemo {
	private Menu menubar ;
	private Shell window ;
	
	public MenuDemo(Shell window){
		this.setWindow(window);
		this.setMenubar(new Menu(this.window,SWT.BAR)) ;		
		this.initMenuUI();
	}
	/**
	 * 返回一个菜单组对象
	 * @param text
	 * @param style
	 * @return MenuItem
	 */
	protected MenuItem getMenuItemGroup(String text,int style){
		MenuItem menuItemGroup = new MenuItem(this.menubar,style);
		menuItemGroup.setText(text);
		return menuItemGroup ;
	}
	
	public void initMenuUI(){
		//定义文件菜单组对象
		MenuItem fileMenuItemGroup = this.getMenuItemGroup("文件",SWT.CASCADE);	
		MenuItem editMenuItemGroup = this.getMenuItemGroup("编辑",SWT.CASCADE);	
		MenuItem configMenuItemGroup = this.getMenuItemGroup("设置",SWT.CASCADE);	
		MenuItem helpMenuItemGroup = this.getMenuItemGroup("帮助",SWT.CASCADE);	
		//将菜单条添加到窗体上
		this.window.setMenuBar(this.menubar);
	}

	public void setMenubar(Menu menubar) {
		this.menubar = menubar;		
	}
	public void setWindow(Shell window) {
		this.window = window;
	}
}
1 楼 vb2005xu 2009-01-21  
2.
将 ChildShellTest方法从SimpleShell中移除,并在ChildShell中添加如下方法:
	
	public static void childShellTest(Shell shell){
		//非模态对话框
		new ChildShell(shell);
		//模式对话框 -- 只禁用父窗体
		new ChildShell(shell,SWT.DIALOG_TRIM|SWT.APPLICATION_MODAL);		
		//模式对话框 -- 禁用系统窗体
		new ChildShell(shell,SWT.DIALOG_TRIM|SWT.SYSTEM_MODAL);	
	}



SimpleShell类中的SimpleShell(int className)函数中的switch块改为如下代码


switch (className) {
			case ExampleClassName.ChildShell:
				ChildShell.childShellTest(this.shell);
				break;
			case ExampleClassName.Common_MenuDemo:
				new MenuDemo(this.shell);
				break;
	
			default: //缺省仅仅打开一个无内容体的窗体
				break;
		}



在 ExampleClassName接口中添加如下代码

public final static int Common_MenuDemo = 0x3 ; //常规菜单实例


修改Runner类中的main方法
SimpleShell simpleShell = new SimpleShell(ExampleClassName.Common_MenuDemo);


另外新建了一个MenuDemo类
/**
 * 与菜单相关的代码例子
 * cn.iamsese.swt.study
 * Author: vb2005xu [JAVA菜鸟]
 */
class MenuDemo {
	private Menu menubar ;
	private Shell window ;
	
	public MenuDemo(Shell window){
		this.setWindow(window);
		this.setMenubar(new Menu(this.window,SWT.BAR)) ;
		this.initMenuUI();		
	}
	/**
	 * 返回一个菜单组对象
	 * @param text
	 * @param style
	 * @return
	 */
	protected MenuItem getMenuItemGroup(String text,int style){
		MenuItem menuItemGroup = new MenuItem(this.menubar,style);
		menuItemGroup.setText(text);
		return menuItemGroup ;
	}
	
	public void initMenuUI(){
		//定义文件菜单组对象
		MenuItem fileMenuItemGroup = this.getMenuItemGroup("文件",SWT.CASCADE); 
		
	}

	public void setMenubar(Menu menubar) {
		this.menubar = menubar;
	}
	public void setWindow(Shell window) {
		this.window = window;
	}
}


相关推荐

    swt-3.7.2-gtk-linux-x86_64.zip

    SWT(Standard Widget Toolkit)是Eclipse开源组织开发的一个用于创建Java图形用户界面(GUI)的库,它提供了丰富的控件和与操作系统更...同时,源代码和调试版本的JAR文件对于学习、调试和优化SWT应用也非常有帮助。

    DJNativeSwing-SWT-1-0-3-20191112.zip

    《DJNativeSwing-SWT:Java桌面应用的融合框架》 DJNativeSwing-SWT-1-0-3-20191112.zip这个压缩包是针对Java开发者的一个重要资源,它包含了DJNativeSwing库与SWT(Standard Widget Toolkit)的集成版本,适用于32...

    kettle-ui-swt-7.1.0.0-12.jar

    kettle-ui-swt-7.1.0.0-12.jar 可修改包中资源 核心jar包

    swt-4.19-cocoa-macosx-x86_64.zip

    标题中的"swt-4.19-cocoa-macosx-x86_64.zip"表明这是一个针对Mac OS X(10.6及以上版本)的64位Cocoa构建的SWT(Standard Widget Toolkit)库的版本4.19。SWT是Eclipse基金会的一个开源项目,它提供了一个用于开发...

    swt-4.19M1-cocoa-macosx-x86_64.zip

    标题 "swt-4.19M1-cocoa-macosx-x86_64.zip" 暗示这是一个 SWT (Standard Widget Toolkit) 的版本,适用于 macOS 平台的 Cocoa 框架,并且是针对 x86_64 架构的。SWT 是一个开源的 Java 库,它允许 Java 开发人员...

    swt-4.3.2-win32-win32-x86_64.zip_SWT_swt 4.3_swt-4.3 x86_64_swt-

    swt框架 适用与window下java窗口开发~~~~

    DJNativeSwing-SWT-0-9-8

    《DJNativeSwing-SWT-0-9-8:Swing与 SWT 的融合与实践》 在Java开发领域,Swing和SWT是两种常用的GUI(图形用户界面)工具包,各自有着独特的特性和优势。DJNativeSwing-SWT-0-9-8是一个开源项目,它致力于将Swing...

    swt-deginer - plugins-3(共5 部分)

    swt-deginer - plugins-3(共5 部分)swt-deginer - plugins-3(共5 部分)swt-deginer - plugins-3(共5 部分)swt-deginer - plugins-3(共5 部分)

    swt-4.3-win64.rar,swt-4.3-win32-x86.jar

    总结来说,SWT-4.3-win64和SWT-4.3-win32-x86是适用于不同架构的Windows系统的SWT库,用于创建具有本地外观的Java GUI应用。配合DJNativeSwing和DJNativeSwing-SWT,开发者可以实现HTML到图像的转换,并在Java应用中...

    swt-3.8M5-win32-win32-x86

    总结来说,"swt-3.8M5-win32-win32-x86"是一个用于Windows 32位系统的SWT版本,包含了运行库、源代码和调试工具,为开发者提供了全面的资源来开发基于SWT的桌面应用程序。通过这个压缩包,开发者不仅可以使用SWT快速...

    JFace-SWT-中文版API(含swt.jar和swt-debug.jar)

    **正文** JFace和SWT是Java编程中用于构建用户界面的重要库,它们与Java标准的Swing库...在实际项目中,可以根据需求选择使用swt.jar或swt-debug.jar,并通过API文档来指导代码编写,从而提升软件的质量和用户体验。

    SWT-JFace-3.5-API.chm.7z

    《SWT-JFace 3.5 API:深入理解与应用》 SWT(Standard Widget Toolkit)和JFace是Java编程中用于构建用户界面的两个重要库,尤其在开发Eclipse插件时,它们起着核心作用。SWT是Java版的窗口系统API,提供了与操作...

    SWT/JFace专题 --- SWT/JFace概述

    学习SWT和JFace,开发者不仅可以创建出高性能、美观的Java GUI应用,还能充分利用Eclipse的生态系统,如插件开发和IDE集成。对于希望提升Java GUI编程技能或涉足Eclipse插件开发的开发者来说,理解和掌握SWT和JFace...

    swt-natives-handler-1.0.zip

    标签"开源项目"指出,SWT-Natives-Handler是一个开放源代码的软件,这意味着其源代码可供公众查看、学习和改进。开源项目通常遵循特定的许可证,允许社区成员自由地使用、修改和分发代码,促进了技术的共享和进步。 ...

    swt - designer 学习实例

    SWT (Standard Widget Toolkit) 是一个用于开发Java GUI应用程序的开源库,它是Eclipse IDE的基础。这个"swt - designer 学习实例...同时,SWT与JFace和Eclipse RCP的结合使用可以创建更复杂的、企业级的桌面应用。

    swt.jar 64-bit 解决Cannot load 32-bit SWT libraries on 64-bit JVM

    完美解决Cannot load 32-bit SWT libraries on 64-bit JVM问题

    swt运行所需的dll

    swt运行时所需的dll文件,包括swt-awt-win32-3236.dll swt-gdip-win32-3236.dll swt-win32-3229.dll swt-win32-3236.dll

    SWT-JFace-in-Action(中文版).doc

    《SWT-JFace-in-Action(中文版)》这本书主要介绍了用于Java GUI开发的两个关键库——SWT和...通过学习《SWT-JFace-in-Action(中文版)》,开发者可以更好地理解和应用这些技术,打造符合用户期望的高质量应用程序。

    book-pro-java-swt-src-01-2005.zip_beginners

    本资源"book-pro-java-swt-src-01-2005.zip"特别针对初学者,提供了SWT和JFace的实例代码,帮助新手快速掌握这两个库的使用。 SWT是Eclipse基金会开发的一个开源GUI库,它直接与操作系统进行交互,提供了高性能、...

    JFace-SWT-API(含swt.jar和swt-debug.jar)

    3. **参考示例代码**:网上有很多使用JFace-SWT的开源项目和示例,可以参考学习。 4. **社区支持**:Eclipse社区提供了大量的论坛和问答资源,遇到问题时可以寻求帮助。 总的来说,JFace-SWT为Java开发者提供了一个...

Global site tag (gtag.js) - Google Analytics