⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tray1.java

📁 SWTJFace篇项目源程序该项目包含 包含了Eclipse下构建swt的基本工程
💻 JAVA
字号:
package cn.com.chengang.swt;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.ShellAdapter;
import org.eclipse.swt.events.ShellEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
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 Tray1 {
	public static void main(String[] args) {
		final Display display = Display.getDefault();
		final Shell shell = new Shell();
		shell.setSize(327, 253);
		// ---------创建窗口中的其他界面组件-------------
		final ToolTip tip = new ToolTip(shell, SWT.BALLOON | SWT.ICON_INFORMATION);// 泡泡型提示
		final Tray tray = shell.getDisplay().getSystemTray();// 取得系统托盘对象
		if (tray != null) {
			final TrayItem item = new TrayItem(tray, SWT.NONE);// 创建托盘对象
			item.setToolTipText("QQ");// 托盘提示文字
			item.setImage(new Image(display, "icons/star.jpg"));// 托盘图标
			item.setToolTip(tip);
			// 生成菜单项,右键单击托盘图标时显示
			final Menu menu = new Menu(shell, SWT.POP_UP);
			final MenuItem showMenu = new MenuItem(menu, SWT.PUSH);
			showMenu.setText("&Hide");
			showMenu.addSelectionListener(new SelectionAdapter() {
				public void widgetSelected(SelectionEvent e) {
					boolean showFlag = shell.isVisible();
					shell.setVisible(!showFlag);
					showMenu.setText(showFlag ? "S&how" : "&Hide");
					tip.setText("QQ的托盘图标");
					tip.setMessage("右键单击图标,\n可以选择菜单");
					tip.setVisible(true);
				}
			});
			MenuItem exitMenu = new MenuItem(menu, SWT.PUSH);
			exitMenu.setText("E&xit");
			exitMenu.addSelectionListener(new SelectionAdapter() {
				public void widgetSelected(SelectionEvent e) {
					System.exit(0);
				}
			});

			// 为托盘添加事件
			item.addListener(SWT.Selection, new Listener() {
				public void handleEvent(Event e) {
					System.out.println("鼠标单击");
				}
			});
			item.addListener(SWT.DefaultSelection, new Listener() {
				public void handleEvent(Event e) {
					System.out.println("鼠标双击");
				}
			});
			item.addListener(SWT.MenuDetect, new Listener() {
				public void handleEvent(Event e) {
					menu.setVisible(true);// 右键点击图标时,显示菜单
				}
			});
			// 效果:关闭窗口时最小化到托盘
			shell.addShellListener(new ShellAdapter() {
				public void shellClosed(ShellEvent e) {
					e.doit = false; // 使窗口的关闭按钮无效
					shell.setVisible(false);
					showMenu.setText("S&how");
					tip.setText("QQ的托盘图标");
					tip.setMessage("右键单击图标,\n可以选择菜单");
					tip.setVisible(true);
				}
			});
		} else {
			tip.setText("该系统不支持托盘效果");
			tip.setLocation(400, 400);
		}

		// -----------------END------------------------
		shell.layout();
		shell.open();
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch())
				display.sleep();
		}
		display.dispose();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -