目录

JAVA实现气泡提示框

目录

JAVA实现气泡提示框

https://img-blog.csdn.net/20131012141918640?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3VucXVhbjI5MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

下面还存在一些问题.

作为timer对象与程序关闭不同步.即当程序关闭时,timer对象还在运行.应增加响应关闭事件,在里面注销timer.

package cn.contorl;

import java.util.Timer;
import java.util.TimerTask;

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.ToolTip;
import org.eclipse.swt.widgets.Tray;
import org.eclipse.swt.widgets.TrayItem;

public class ToolTipTest {

    public static void main(String[] args) {

    	final Display display = Display.getDefault();
    	Shell shell = new Shell(display);
    	shell.open();
    	/** 得到系统托盘 */
    	final Tray tray = Display.getCurrent().getSystemTray();
    	/** 計時器 */
    	Timer timer = new Timer();
    	timer.schedule(new TimerTask() {
    		@Override
    		public void run() {
    			/** 程序異步訪問swt對象 */
    			display.asyncExec(new Runnable() {
    				@Override
    				public void run() {
    					ToolTip tip = new ToolTip(display.getActiveShell(),
    							SWT.BALLOON | SWT.ICON_INFORMATION);
    					tip.setAutoHide(true);
    					tip.setMessage("欢迎访问http://www.csdn.net/sunquan291");
    					tip.setText("欢迎使用");
    					TrayItem item = new TrayItem(tray, SWT.None);
    					item.setToolTip(tip);
    					tip.setVisible(true);
    				}
    			});
    		}
    	}, 0, 3000);

    	while (!shell.isDisposed()) {
    		if (!display.readAndDispatch()) {
    			display.sleep();
    			timer.cancel();
    		}
    	}

    }

}