`

SWT时间选择器

阅读更多
package com.netunit.workbench.test;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.DateTime;
import org.eclipse.swt.widgets.Dialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;

/**
 * Time Picker
 * @author 何明
 *
 */
public class TimePicker extends Dialog {

	protected Object result;
	protected Shell shell;

	/**
	 * Create the dialog
	 * 
	 * @param parent
	 * @param style
	 */
	public TimePicker(Shell parent, int style) {
		super(parent, style);
	}

	/**
	 * Create the dialog
	 * 
	 * @param parent
	 */
	public TimePicker(Shell parent) {
		this(parent, SWT.NONE);
	}

	public TimePicker() {
		super(Display.getDefault().getActiveShell());
	}

	/**
	 * Open the dialog
	 * 
	 * @return the result
	 */
	public Object open() {
		createContents();
		shell.open();
		shell.layout();
		Display display = getParent().getDisplay();
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch())
				display.sleep();
		}
		return result;
	}

	/**
	 * Create contents of the dialog
	 */
	protected void createContents() {
		shell = new Shell(getParent(), SWT.DIALOG_TRIM);
		shell.setSize(448, 201);
		shell.setText("Time Picker");
		shell.setLayout(new GridLayout(3, false));

		final DateTime calendar = new DateTime(shell, SWT.CALENDAR | SWT.BORDER);
		final DateTime date = new DateTime(shell, SWT.DATE | SWT.SHORT);
		final DateTime time = new DateTime(shell, SWT.TIME | SWT.SHORT);

		new Label(shell, SWT.NONE);
		new Label(shell, SWT.NONE);
		Button ok = new Button(shell, SWT.PUSH);
		ok.setText(" OK ");
		ok.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
		ok.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				System.out.println(" Calendar date selected (MM/DD/YYYY) = "
						+ (calendar.getMonth() + 1) + " / " + calendar.getDay()
						+ " / " + calendar.getYear());
				System.out.println(" Date selected (MM/YYYY) = "
						+ (date.getMonth() + 1) + " / " + date.getYear());
				System.out.println(" Time selected (HH:MM) = "
						+ time.getHours() + " : " + time.getMinutes());

				System.out.println("(YYYY/MM/DD/HH:MM)" + calendar.getYear()
						+ "/" + (calendar.getMonth() + 1 )
						+ "/" + calendar.getDay() + "/" + time.getHours() + ":"
						+ time.getMinutes());
				shell.close();

			}

		});
		shell.setDefaultButton(ok);
		//
	}

}
在写个main方法测试下就行了
	public static void main(String[] args) {
		Display display = new Display();
		final Shell shell = new Shell(display);
		shell.setLayout(new FillLayout());

		Button open = new Button(shell, SWT.PUSH);
		open.setText(" Open Dialog ");
		open.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				final TimePicker dialog = new TimePicker();
				
				
				dialog.open();
			}
		});
		shell.pack();
		shell.open();

		while (!shell.isDisposed()) {
			if (!display.readAndDispatch())
				display.sleep();
		}
		display.dispose();
	}
分享到:
评论
1 楼 zhoche2008 2010-01-11  
非常好。谢谢。

相关推荐

    基于MAX791的微处理器电源监控电路的软硬件设计.pdf

    基于MAX791的微处理器电源监控电路的软硬件设计是指...适当选择电阻值的大小,可以保证充电电流和充电时间都比较合理。 本设计方法可以帮助用户设计基于MAX791的微处理器电源监控电路,提高微处理器的可靠性和稳定性。

    RestaurantDB:数据库组项目

    旨在减少人们选择餐馆的时间,这是在不选择地理位置的情况下确定要选择哪些餐馆的假想。 由Team Foogle创建。 文档在单独的文件夹中提供。 特征 用户可以通过提供的界面在自己的管辖范围内对餐厅进行评分,评论和...

    java源码包---java 源码 大量 实例

    原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制  Java二进制IO类与文件...

    java源码包2

    原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制  Java二进制IO类与文件...

    java源码包3

    原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制  Java二进制IO类与文件...

    java源码包4

    原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制  Java二进制IO类与文件...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制...

    JAVA上百实例源码以及开源项目

    原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制  Java二进制IO类与文件...

    JAVA上百实例源码以及开源项目源代码

    原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制  Java二进制IO类与文件...

    java基础案例与开发详解案例源码全

    9.5 Java语言国际化时间获取与计算238 9.6 Random类和Math类240 9.7 本章习题243 第10章 10.1 异常概述246 10.2 使用try和catch捕获异常..2 50 10.3 使用throw和throws引发异常252 10.4 finally关键字255 10.5 ...

    Eclipse RCP Plug-in开发自学教程(Eclipse3.6)

    最近抽些时间,更新到eclipse3.6上来,既作为为广大Eclipser入门plugin/RCP开发的一个方便之门,也是对自己近年来学习的一个总结吧。 每一章都会单独提取出来,并尽可能的独立于其他章节,更新中的源代码工程也会...

Global site tag (gtag.js) - Google Analytics