- 浏览: 269006 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (152)
- lucene (5)
- java (12)
- eclipse (2)
- GEF (34)
- SWT/JFACE/PLUGIN (58)
- EMF (8)
- GMF (0)
- fckeditor (1)
- AIX (1)
- 云计算 (2)
- 使用 Grails 构建富 Internet 应用程序 (1)
- Grails (1)
- 动态调用动态语言 (2)
- W3C DOM (3)
- Google Maps (1)
- 优化 (1)
- WebSphere (1)
- NSIS (1)
- 计算机安全 (1)
- Mina (2)
- Draw2d (4)
- Compass (1)
- 原创诗集 (3)
- 人生 (1)
- 翻版 (1)
- OSGI (1)
- Ubuntu (2)
- Ireport (2)
最新评论
-
扬手就是一长鞭:
移动label也无法使得save可以执行。
让连线上的Label动起来吧 -
扬手就是一长鞭:
我的save是正常的,我添加删除node或者connectio ...
让连线上的Label动起来吧 -
扬手就是一长鞭:
我也是这扥写的,可是我双击label改变他的文字时,发现sav ...
让连线上的Label动起来吧 -
ae6623:
这段代码放到哪里??
控制拖拽范围 -
ae6623:
真牛!鼠标滚轮缩放GEF画布 ..
getGraphicalV ...
GEF实现用鼠标滑轮控制画布的放大与缩小
由于工作忙,对于代码不多做解释,直接贴上来,请大家见谅
再在ApplicationWorkbenchWindowAdvisor类中添加两个方法
再在重写dispose()方法
再在postWindowCreate()方法中添加如下代码即可
package com.netunit.workbench.sys; import java.util.Timer; import java.util.TimerTask; import org.eclipse.jface.action.Action; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.MenuManager; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ShellAdapter; import org.eclipse.swt.events.ShellEvent; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.ToolTip; import org.eclipse.swt.widgets.Tray; import org.eclipse.swt.widgets.TrayItem; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.plugin.AbstractUIPlugin; import com.netunit.workbench.actions.LogoffAction; import com.netunit.workbench.intro.Application; /** * 托盘实现类 * @author 何明 * */ public class HookSysTray { private TrayItem trayItem; public HookSysTray() { } public void createSysTray(final IWorkbenchWindow window) { trayItem = initTrayItem(window); if (trayItem != null) { trayPopupMenu(window); trayMinimize(window); } } // 最小化程序窗口 public void windowMinimized(final Shell shell) { shell.setMinimized(true); shell.setVisible(false); } // 最小化程序到托盘 private void trayMinimize(final IWorkbenchWindow window) { window.getShell().addShellListener(new ShellAdapter() { public void shellIconified(ShellEvent e) { window.getShell().setVisible(false); } }); trayItem.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { Shell shell = window.getShell(); if (!shell.isVisible()) { shell.setVisible(true); window.getShell().setMinimized(false); } } }); } // 托盘弹出菜单 private void trayPopupMenu(final IWorkbenchWindow window) { trayItem.addListener(SWT.MenuDetect, new Listener() { public void handleEvent(Event event) { MenuManager trayMenu = new MenuManager(); Menu menu = trayMenu.createContextMenu(window.getShell()); fillTrayItem(trayMenu, window); menu.setVisible(true); } }); } // 构造托盘菜单项 private void fillTrayItem(IMenuManager trayItem, final IWorkbenchWindow window) { Action exitSystem = new Action("退出系统[&E]", AbstractUIPlugin .imageDescriptorFromPlugin(Application.ID, "icons/exit.gif")) { public void run() { PlatformUI.getWorkbench().close(); } }; trayItem.add(new LogoffAction()); trayItem.add(exitSystem); } // 初始化托盘项目的文字和图标 private TrayItem initTrayItem(final IWorkbenchWindow window) { final Tray tray = window.getShell().getDisplay().getSystemTray(); if (tray == null) return null; trayItem = new TrayItem(tray, SWT.NONE); trayItem.setImage(CacheImage.getINSTANCE().getImage( Application.ID, "icons/logo.gif")); // 定时显示气泡提示文本 Timer timer = new Timer(); timer.schedule(new TimerTask() { public void run() { window.getShell().getDisplay().syncExec(new Runnable() { public void run() { ToolTip tip = new ToolTip(window.getShell(), SWT.BALLOON | SWT.ICON_INFORMATION); tip.setAutoHide(true); tip.setMessage("银驼铃MSAP2000网元管理系统"); tip.setText("欢迎使用"); trayItem.setToolTip(tip); tip.setVisible(true); } }); } }, 0, 30 * 60 * 1000); return trayItem; } public void Dispose() { if (trayItem != null) trayItem.dispose(); } }
再在ApplicationWorkbenchWindowAdvisor类中添加两个方法
/** * 创建系统托盘 */ public void createSystemTray() { hookSysTray = new HookSysTray(); hookSysTray.createSysTray(getWindowConfigurer().getWindow()); } /** * 判断窗口是否被关闭 */ public boolean preWindowShellClose() { hookSysTray.windowMinimized(getWindowConfigurer().getWindow() .getShell()); return false; }
再在重写dispose()方法
public void dispose() { hookSysTray.Dispose(); CacheImage.getINSTANCE().dispose(); }
再在postWindowCreate()方法中添加如下代码即可
createSystemTray(); String[] args=Platform.getApplicationArgs(); if(args.length==1&&args[0].equals("system")) getWindowConfigurer().getWindow().getShell().setMinimized(true);
发表评论
-
选择workspace中的文件对话框
2011-04-09 17:57 1585ElementTreeSelectionDialog dial ... -
在插件中访问StatusLine
2011-01-17 11:26 1132WorkbenchWindow window = Platfr ... -
给RCP添加SVN功能
2011-01-03 17:26 1849三个步骤: 一、下载SVN插件到eclipse; 二、给RCP ... -
获得当前激活状态的Iproject
2010-11-30 12:48 1526/** * 获得当前工程 * @return ... -
让TableViewer支持Tab编辑
2010-10-16 08:57 1965高效的编辑无疑于tab操作,给TableViewer加tab操 ... -
实现Eclipse自身的log管理
2010-01-14 10:58 3327做插件开发的都知道当 ... -
自定义RCP外观
2010-01-13 21:52 4295如果说只需要改变RCP的皮肤可以参照IBM上的Eclipse程 ... -
SWT GC重绘心得
2010-01-13 01:10 5232如果有需求要将Composite的边框颜色改成红色,大家肯定就 ... -
在eclipse中获得当前所有打开的editor实例列表
2009-12-18 14:42 1576EditorPart[] parts = Platfor ... -
将应用默认使用XP风格
2009-12-09 16:54 1089从http://www.eclipse.org/swt/jav ... -
RCP中访问StatusLine详解
2009-11-26 15:40 2802首先给大家介绍各种情 ... -
扩展org.eclipse.ui.preferencePages的些许经验
2009-11-13 15:28 2131最近参考Eclipse插件开发 ... -
给视图添加快捷键
2009-10-11 02:46 1039上一篇博文中讲了用扩展的方式添加全局快捷键,现在本文用硬编码的 ... -
添加全局快捷键
2009-10-11 02:38 1448两种方法:一种扩展, ... -
让SWT中的text只能输入数字
2009-10-07 14:51 3173思路:给Text添加键盘输入事件,判断按下的键的ASCII码 ... -
通过ACTION的ID来获得ACTION
2009-09-28 11:43 2954现在又很多需求都需要动态去改变Action的enable/di ... -
动态关闭ViewPart
2009-09-24 18:36 1929IWorkbenchPage page = PlatformU ... -
设置TreeViewer的前景色和背景色
2009-09-23 11:54 1693让TreeViewerLabelProvider实现IColo ... -
给子控件和父控件添加相同的事件
2009-09-18 13:24 1298方法很多种,我这里介绍种最简单易懂的;触发事件得有listen ... -
SWT时间选择器
2009-09-04 16:50 3324package com.netunit.workbench.t ...
相关推荐
Javafx2 系统托盘实现
实现漂亮的气泡托盘提示,我们主要涉及以下几个步骤: 1. **创建托盘图标**:首先,我们需要在VB项目中添加一个 TrayIcon 控件,这将允许我们的程序在系统托盘中显示图标。在设计阶段,设置该控件的 Icon 属性为...
【标题解析】:“漂亮的气泡系统托盘”指的是在计算机应用程序中,一种设计美观的系统托盘区域(也称为通知区域或系统 tray)的实现。系统托盘是Windows操作系统桌面底部任务栏右下角的一个区域,常用于放置各种程序...
综上所述,VB气泡托盘是一个用VB编程语言实现的,用于在系统托盘区显示通知的组件。通过DLL源码,开发者可以方便地在自己的应用程序中集成这个功能,并且可以根据需要进行个性化调整。如果你正在使用VB开发Windows...
- 创建任务栏通知区域(系统托盘)图标,需要使用`NotifyIcon`控件。将其添加到窗体,并设置`Icon`属性为所需的图标。 - 添加`ContextMenuStrip`控件,用于显示右键单击托盘图标时的上下文菜单。将`...
本资源提供了一个漂亮的VB托盘泡泡提示类源码,允许开发者轻松地在自己的应用程序中实现这种功能。 源码中的“TipCls.cls”是一个类模块,它封装了泡泡提示的实现细节,使得开发者无需深入了解其内部工作原理,只需...
2. **任务栏**:是Windows桌面的底部或顶部的横条,显示运行的应用程序、系统托盘以及“开始”按钮等元素。 3. **时钟**:这是任务栏上的一个重要组件,显示当前日期和时间,也是用户经常参考的信息源。 4. **表**...
7.实现系统托盘,托盘菜单,弹出菜单,修改用户密码等功能; 8.使用MySQL数据库,实现对数据库的增删改查等相关技术。 9.实现即时聊天功能,使用IO流输入输出技术,Socket网络通讯技术,序列化技术 10.使用Swing组件...
【标题】:“xtreme 界面库 非常漂亮的trayicon”指的是XTreme ToolkitPro中的TrayIcon组件,这是一个用于创建具有吸引力且功能强大的系统托盘图标(TrayIcon)的工具。 【描述】:“xtreme 界面库 非常漂亮的...
`fyne`还支持多窗口应用,以及与系统托盘的交互。开发者可以利用`fyne.OpenURL()`打开外部链接,`widget.Notification`显示通知,`app.Settings().OnChanged()`监听系统设置变化等。 通过这个演示例子,你可以深入...
用VB实现屏幕右下角的托盘图标,一个显示托盘的气泡提示程序源码,鼠标放在托盘的图标上,会弹出像Windows XP系统中的托盘提示,一个很漂亮的气泡文字,鼠标移走后会自动消失,在各大VB开发的应用程序中,似乎你都...
该压缩包文件“漂亮的定时闹钟[Reminder.rar]”包含一系列与编程相关的源代码文件,主要是用以构建一...对于有经验的开发者来说,这则是一个很好的示例,展示了如何实现特定功能,如系统托盘图标和窗口始终保持在顶部。
- 实例004:任务栏托盘菜单,即在系统托盘区域设计的菜单,这对于隐藏主窗口进行后台运行的应用程序很有用。 2. 工具栏设计: - 实例007:带背景的工具栏,使得工具栏界面不那么单调,增加了视觉层次感。 - 实例...
在IT行业中,创建可拖动的悬浮窗和对话框悬浮...在实际应用中,这类功能常被用于桌面工具、系统托盘应用、辅助软件等,为用户提供方便的交互体验。通过不断实践和优化,我们可以创造出更加人性化、易用的悬浮窗口应用。
此外,这些图标也可以用在桌面快捷方式、系统托盘或状态区域,为用户提供清晰的操作指示。 对于软件开发者而言,IconLib提供的图标资源可以极大地节省他们在图形设计上的时间和精力,让他们能够专注于代码编写和...
老版qq系统的实现。 MyIE3.0浏览器源代码 如题。完整的代码,重载控件实现,非常适合初学者。 MyPhpServer(原创,有实现的主要代码) 如题。 microcai-ibus-t9-输入法源码 如题,主要源码就几个,详细见代码。 ...
- **实例说明**:许多应用程序会在任务栏的系统托盘区域放置一个小图标,点击该图标会弹出一个菜单,提供应用程序的主要功能选项。 - **技术要点**: - 注册系统托盘图标。 - 设计简洁易用的菜单布局。 **实例005...
- **描述**:此实例展示了一个美观的菜单设计,类似于Windows操作系统中的开始菜单,提供了丰富的选项和直观的操作方式。 - **实现方法**:可以使用自定义样式和布局来实现这样的效果,可能涉及图像处理和动态布局...
3. **托盘最小化**:通过 Electron 的 Tray API,可以实现将应用最小化到系统托盘,提升用户体验。 4. **闪烁提醒**:当有新消息或事件时,应用窗口可以闪烁提醒用户,这通常通过修改窗口的样式实现。 5. **NSIS ...
语音报时或者音乐提示时,可以通过双击系统托盘图标或者窗口来停止声音播放。 在窗口自动隐藏时,可以有系统任务栏的气泡提示。 --自带简单的实时皮肤编辑器,轻松实现皮肤定制。 --完全免费,不含...