`

SWT学习笔记4——系统托盘 system tray

 
阅读更多


import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Tray;
import org.eclipse.swt.widgets.TrayItem;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MenuDetectListener;
import org.eclipse.swt.events.MenuDetectEvent;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Image;

/**
 * 测试SWT的系统托盘用法,同时用到了menu等
 *version: 2012_03_30
 */
public class TestSystemTray {

	public static void main(String[] args) {
		Display display = Display.getDefault();
		final Shell shell = new Shell();
		shell.setSize(230, 150);
		shell.setText("测试系统托盘");
		//添加系统托盘的menu,注意父组件是shell
		final Menu menu = new Menu(shell);
//		shell.setMenu(menu);//加上此句的话在主界面右键也会打开该menu
		
		MenuItem mntmShowShell = new MenuItem(menu, SWT.NONE);
		mntmShowShell.addSelectionListener(new SelectionAdapter() {
			@Override
			public void widgetSelected(SelectionEvent e) {
				System.out.println(e);
				shell.setVisible(true);
				shell.setFocus();//没有此句可能在其他窗口下面
			}
		});
		mntmShowShell.setText("showShell");
		
		MenuItem mntmhideShell = new MenuItem(menu, SWT.NONE);
		mntmhideShell.addSelectionListener(new SelectionAdapter() {
			@Override
			public void widgetSelected(SelectionEvent e) {
				System.out.println(e);
				shell.setVisible(false);
			}
		});
		mntmhideShell.setText("hideShell");

		//
		Tray sysTray=display.getSystemTray();
		TrayItem trayItem = new TrayItem(sysTray, SWT.NONE);
//		trayItem.setImage(display.getSystemImage(SWT.ICON_ERROR));
		trayItem.setImage(new Image(display, "hu.jpg"));
		trayItem.setToolTipText("test system tray");
		//鼠标右键单击系统托盘事件
		trayItem.addMenuDetectListener(new MenuDetectListener() {
			public void menuDetected(MenuDetectEvent e) {
				System.out.println(e);
				menu.setVisible(true);
			}
		});
		//鼠标左键双击系统托盘事件
		trayItem.addSelectionListener(new SelectionAdapter() {
			@Override
			public void widgetDefaultSelected(SelectionEvent e) {
				System.out.println(e);
				shell.setVisible(!shell.isVisible());
				if(shell.isVisible())shell.setFocus();//没有此句可能在其他窗口下面
			}
		});
		
		shell.open();
		shell.layout();
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch()) {
				display.sleep();
			}
		}
		
		menu.dispose();
		sysTray.dispose();//没有此句的话任务栏图标不会立即消失,鼠标滑过时才会消失!!!
	}
}
  • 描述: 小老虎就是系统托盘喽~
  • 大小: 29.2 KB
分享到:
评论

相关推荐

    程序缩小时缩为系统托盘(system tray)的小图标.rar_托盘_系统 托盘_系统托盘_系统托盘 图标

    在计算机软件开发中,"程序缩小时缩为系统托盘(system tray)的小图标"是一种常见的设计模式,尤其适用于需要在后台运行的服务类程序。系统托盘,也被称为通知区域,是Windows操作系统桌面任务栏右下角的一个区域,...

    操作系统托盘图标Tray

    操作系统托盘图标(Tray Icon)是用户界面中一个重要的组成部分,它位于任务栏的右下角,通常称为系统托盘或通知区域。这个区域显示了各种程序和服务的小图标,如网络连接、音量控制、时钟等。这些图标不仅为用户...

    SystemTrayIcon.zip

    `SystemTrayIcon`还提供了其他属性和信号,如`message`(显示系统消息)和`activated`(当用户点击图标时触发)。 总之,通过Qt和QML,我们可以轻松地为应用程序创建一个实用且简洁的系统托盘图标,提供方便的快捷...

    java创建系统托盘实现(swt和jdk6分别实现)

    在SWT中创建系统托盘图标相对简单。`TrayBySwt.java` 文件可能包含了以下代码: ```java import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Tray; import org....

    托盘程序tray.rar

    首先,我们要理解托盘程序的核心组件——系统托盘图标(System Tray Icon)。系统托盘图标是Windows API提供的一种用户界面元素,它允许程序在任务栏上显示一个图标,并与用户交互。C++中,我们主要通过`Shell_...

    pstrayfactory(隐藏系统托盘或任务栏图标)

    【标题】:“pstrayfactory(隐藏系统托盘或任务栏图标)” 【知识点详解】: pstrayfactory是一款小巧而实用的工具,专门用于管理并隐藏Windows操作系统中系统托盘区域以及任务栏上的图标。在日常使用电脑时,...

    JavaFX+Jfoenix 学习笔记(十)--系统托盘及解决中文乱码问题源码

    在本篇JavaFX+Jfoenix学习笔记中,我们将探讨如何在JavaFX应用程序中实现系统托盘功能,以及如何解决可能出现的中文乱码问题。系统托盘是现代桌面应用中常见的一种特性,允许用户在关闭主窗口后,仍然可以通过托盘...

    AIR systemTrayIcon sample code

    在本文中,我们将深入探讨Adobe Integrated Runtime (AIR) 中的`SystemTrayIcon`功能,以及如何使用它来创建和管理应用程序的系统托盘图标。系统托盘图标是桌面应用程序中一个常见且实用的特性,它允许用户在任务栏...

    java系统托盘 java 系统托盘 系统托盘 java 系统托盘java java任务栏 java 任务栏 任务栏java 任务栏 java 源代码

    在Java编程语言中,系统托盘(System Tray)也被称为通知区域或任务栏图标,它允许应用程序在主屏幕的右下角(Windows系统)或其他操作系统相应位置显示一个图标,以便在不占据窗口空间的情况下提供服务。...

    AIR System Tray and Dock Example

    标题 "AIR System Tray and Dock Example" 提供了一个关键线索,表明我们要探讨的是关于Adobe Integrated Runtime (AIR)的应用程序,特别是如何在系统托盘或Dock区域实现功能。在计算机用户界面中,系统托盘通常位于...

    tray系统托盘显示

    在Windows编程中,"tray系统托盘显示"是指应用程序在任务栏的系统托盘区域显示图标和通知的能力。这通常涉及到使用Windows API中的特定函数和消息处理,以实现一个称为"托盘通知区域"的功能。这个功能允许程序在后台...

    ObjectDock(startdock) 系统托盘tray插件

    在提供的"Tray系统托盘插件"中,可能包含了安装或更新ObjectDock tray功能所需的文件。用户需要按照指示进行安装或升级,以确保ObjectDock能正常运行并发挥其全部功能。安装过程中应注意备份重要数据,遵循安装步骤...

    Delphi7 SystemTrayIcon 控件包 及Demo

    SystemTrayIcon控件是Delphi开发环境中用于创建系统托盘图标的一个组件,它允许开发者将应用程序的主窗口最小化到任务栏的系统托盘区域,提供更便捷的用户交互体验。 首先,我们来看"Delphi7 SystemTrayIcon 控件包...

    JAVA系统托盘图标控制程序

    在Java编程语言中,系统托盘图标(System Tray Icon)是一种功能强大的用户界面元素,它允许应用程序在操作系统任务栏的托盘区域显示图标并提供菜单或快捷操作,即使主窗口被最小化或隐藏也能与用户交互。...

    system tray example

    描述中提到这是一个简单的VB环境下的system tray编程例子,意味着我们将学习如何使用VB的基本元素来构建一个能在系统托盘中显示和交互的应用程序。这通常涉及到以下几个关键知识点: 1. **托盘图标组件**:在VB中,...

    java swt 隐藏和显示任务栏图标和托盘图标(2)

    `Tray`代表系统托盘区域,`TrayItem`是托盘区内的图标。下面是如何创建和管理托盘图标的示例: ```java Tray tray = display.getSystemTray(); if (tray != null) { Image image = new Image(display, "path_to_...

    Swing 实现系统托盘

    System.out.println("系统支持系统托盘"); // ... } else { // 系统不支持托盘,给出提示 System.out.println("系统不支持系统托盘"); } } } ``` **二、创建和添加图标** 一旦确定系统支持系统托盘,我们就...

    托盘TRaY源程序

    在众多的应用程序中,“托盘TRaY源程序”是一个极具代表性的例子,它不仅展示了如何在Windows平台上通过MFC库编写程序,还巧妙地将动画效果融入到系统托盘图标中,提供了更丰富的用户交互体验。 首先,我们需要了解...

    Qt之系统托盘

    本教程将深入探讨Qt中的系统托盘(System Tray),这是许多桌面应用如QQ、微信等必备的功能,使得程序可以在任务栏图标区域以小图标形式存在,即使主窗口被最小化或关闭,也能方便地进行交互。 首先,系统托盘在Qt...

    Java系统托盘 Java系统托盘

    在Java编程环境中,系统托盘(System Tray)功能允许应用程序在主窗口最小化后仍然在操作系统任务栏的托盘区域保持存在,以便用户可以轻松访问和控制应用。这对于那些需要后台运行或者不需要频繁显示用户界面的应用...

Global site tag (gtag.js) - Google Analytics