频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

让界面更加绚丽 Java SE 6.0 GUI体验

来源:天极开发 作者: 出处:巧巧读书 2006-11-29 进入讨论组
系统托盘

  现在有很多程序除了提供了一个完整的主界面外,在它最小化或者启动后在右下角的系统托盘区总是有一个小图标,如金山词霸、QQ和MSN等。图5显示了一台计算机的系统托盘里的图标。

让界面更加绚丽 Java SE 6.0 GUI体验(图三)
图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是程序运行结果。最左侧的五彩光盘图标就是本程序加入了。

让界面更加绚丽 Java SE 6.0 GUI体验(图八)
图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);

  图7为显示界面图

让界面更加绚丽 Java SE 6.0 GUI体验(图九)
图7

  Java SE 6还为我们提供了3种提示信息,它们是警告、错误和信息。如使用如下语句添加提示信息。

  添加警告提示:

trayIcon.displayMessage("警告", "这是一个警告提示!", TrayIcon.MessageType.WARNING);

让界面更加绚丽 Java SE 6.0 GUI体验(图十)
图8 警告提示

  添加错误提示:

trayIcon.displayMessage("错误", "这是一个错误提示!", TrayIcon.MessageType.ERROR);

让界面更加绚丽 Java SE 6.0 GUI体验(图十)
图9 错误提示

  添加信息提示:

trayIcon.displayMessage("信息", "这是一个信息提示!", TrayIcon.MessageType.INFO);

让界面更加绚丽 Java SE 6.0 GUI体验(图十二)
图10 信息提示
转 载:http://www.qqread.com/java/2006/11/s283540.html 更多文章 更多内容请看Java环境安装配置Java编程开发手册专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
最新论坛文章
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章