让界面更加绚丽 Java SE 6.0 GUI体验
系统托盘
现在有很多程序除了提供了一个完整的主界面外,在它最小化或者启动后在右下角的系统托盘区总是有一个小图标,如金山词霸、QQ和MSN等。图5显示了一台计算机的系统托盘里的图标。
如果使用C++、Delphi(Pascal)等语言实现这个功能非常简单,只要调用一下系统API即可,但在以前版本(Java SE 5以前)的Java SE中Sun并未提供访问系统托盘的类,在那时使用Java访问系统托盘的唯一方法就是使用JNI直接调用系统API,但这种方法实现比较复杂,而且如果这样做,就破坏了Java的跨平台特性(除非你为每一个操作系统平台都做一个这样的类)。Java的这个缺陷缓和终于在Java SE 6中得到弥补。在java.awt包中提供了一个SystemTray类可以直接访问系统托盘。下面的代码演示了一个简单的实现。
import javax.swing.*;
import java.awt.*;
public class MyTray
{
public static void main(String args[])
{
// 判断当前操作系统是否支持系统托盘
// 最好加上这个判断,否则这个程序可能在其它操作系统上无法正常工作
if (SystemTray.isSupported())
{
// 通过静态方法getSystemTray()得到系统托盘
SystemTray tray = SystemTray.getSystemTray();
// 装载托盘图象
Image image = Toolkit.getDefaultToolkit().getImage("tray.gif");
// 为这个托盘加一个弹出菜单
PopupMenu popup = new PopupMenu();
MenuItem item = new MenuItem("我的菜单");
popup.add(item);
// 为这个托盘加一个提示信息
TrayIcon trayIcon = new TrayIcon(image, "提示信息", popup);
try
{
tray.add(trayIcon);
}
catch (AWTException e)
{
System.err.println("无法向这个托盘添加新项: " + e);
}
}
else
{
System.err.println("无法使用系统托盘!");
}
}
}
在运行上面的程序之前,tray.gif一定要放到当前目录,如果放到其它的目录,要在程序中指明。图6是程序运行结果。最左侧的五彩光盘图标就是本程序加入了。
如果多次调用tray.add(trayIcon),可以在一个程序中向系统托盘添加多个图标。但要注意,图象可以使用一个Image对象,但弹出菜单要为每一个图标建一个,如果不建,就设为null。如:
TrayIcon trayIcon1 = new TrayIcon(image, "提示信息1", null);
TrayIcon trayIcon2 = new TrayIcon(image, "提示信息2", null);
TrayIcon trayIcon3 = new TrayIcon(image, "提示信息3", null);
tray.add(trayIcon1);
tray.add(trayIcon2);
tray.add(trayIcon3);
Java SE 6还为我们提供了3种提示信息,它们是警告、错误和信息。如使用如下语句添加提示信息。
添加警告提示:
trayIcon.displayMessage("警告", "这是一个警告提示!", TrayIcon.MessageType.WARNING);
添加错误提示:
trayIcon.displayMessage("错误", "这是一个错误提示!", TrayIcon.MessageType.ERROR);
添加信息提示:
trayIcon.displayMessage("信息", "这是一个信息提示!", TrayIcon.MessageType.INFO);
分享到:
相关推荐
jar文件双击可以执行,jar里有源代码,可以用解压缩工具查看。 Java实现系统托盘
java实现系统托盘两种方法JNI/JDK6.0
解压即可运行,适用于初学者
Java实现系统托盘的绝好例子,对于喜欢界面设计的朋友是不能错过的,大家可以下载下来学习,代码很容易懂!~
桌面的系统托盘即当程序最小化或者关闭按钮程序并没有退出,而是最小化在任务状态区域,下面是使用java实现系统托盘示例
java应用程序实现系统托盘功能,可以像QQ一样后台挂载运行
实现了java的系统托盘等等之类的。要看的可以see see 额
本篇文章介绍了,在Java中实现系统托盘功能的详解,文中附源码以及截图介绍。需要的朋友参考下
java毕业设计——java+SQL电子通讯录带系统托盘的设计与实现(论文+源代码).zip java毕业设计——java+SQL电子通讯录带系统托盘的设计与实现(论文+源代码).zip java毕业设计——java+SQL电子通讯录带系统托盘的设计与...
基于JAVA+SQL电子通讯录带系统托盘设计与实现.zip基于JAVA+SQL电子通讯录带系统托盘设计与实现.zip基于JAVA+SQL电子通讯录带系统托盘设计与实现.zip基于JAVA+SQL电子通讯录带系统托盘设计与实现.zip基于JAVA+SQL电子...
本程序举例说明了java如何实现托盘功能
实现就像QQ缩小在开始菜单栏右下角那种功能
Java实现窗口放在桌面顶端隐藏和系统托盘的效果,效果类似QQ
检查当前系统是否支持系统托盘 使用的图标被缩放到合适的比例
NULL 博文链接:https://llying.iteye.com/blog/306617
此资源集包含了一套完整的Java实现的电子通讯录带系统托盘项目源代码、相关的毕业论文以及详尽的使用说明。它旨在提供一个全面、深入的学习和研究工具,适用于本科课程设计、毕业设计以及任何希望深入学习Java编程的...
此外,系统还集成了JavaFX技术来实现图形用户界面,以及Java的SystemTray类来实现系统托盘功能。 项目的主要功能包括: 1. 用户注册与登录:支持用户创建账户和登录系统。 2. 联系人管理:允许用户添加、修改、...