`
flyPig
  • 浏览: 139616 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

swing实现系统托盘

阅读更多
在jdk1.6里,swing方面的改动非常大,其中有个改动就是加入了java自己的托盘实现,终于不用去引用第三方的jar来做了。一个简单的demo:
public class TrayIconTest extends JFrame {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private TrayIcon ti;

    public static void main(String[] args) {
    	TrayIconTest frame = new TrayIconTest();
        frame.setTitle("TrayIconTest");
        frame.setVisible(true);
        frame.setSize(200, 65);
        frame.setLocation(300, 200);
    }

    public TrayIconTest() {
        setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
        this.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                if (SystemTray.isSupported()) {
                    setVisible(false);
                    minimizeToTray();
                } else {
                    System.exit(0);
                }
            }
        });
        JPanel root = new JPanel();
        JButton exitButton = new JButton("Exit");
        exitButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                System.exit(0);
            }
        });
        root.add(exitButton);
        getContentPane().add(root);
        pack();
        initTi();
    }

    private void initTi() {
    	URL url = this.getClass().getResource("/logo.gif");
        Image image = Toolkit.getDefaultToolkit().getImage(url);
        PopupMenu popupTi = new PopupMenu();
        MenuItem showItem = new MenuItem("Show");
        ActionListener showListener = new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                setVisible(true);
                SystemTray.getSystemTray().remove(ti);
            }
        };
        showItem.addActionListener(showListener);
        popupTi.add(showItem);
        ti = new TrayIcon(image, "TrayIcon", popupTi);
        ti.addActionListener(showListener);
    }

    public void minimizeToTray() {
        SystemTray tray = SystemTray.getSystemTray();
        try {
            tray.add(ti);
        } catch (AWTException e) {
            e.printStackTrace();
        }
    }

}

有了这个,可以把trayicon这个东西给拿掉了,对第三方包的引用又能减少一个了。
分享到:
评论

相关推荐

    Swing 实现系统托盘

    在Java的Swing库中,实现系统托盘功能可以为应用程序提供一个持续的交互界面,即使主窗口已经最小化或关闭。系统托盘,也称为通知区域或系统通知区,通常位于操作系统任务栏的右侧,允许用户快速访问常用的功能或...

    swing系统托盘示例

    本篇文章将深入探讨如何利用Swing实现系统托盘示例,结合提供的`TrayTest.java`源码以及`computer_delete.png`和`computer.png`这两张图标资源。 首先,`TrayTest.java`是实现系统托盘功能的主要代码文件。在Java中...

    Java系统托盘 Java系统托盘

    以上就是使用Java Swing实现系统托盘的基本步骤。通过这种方式,你可以为你的Java应用提供更加友好的用户交互体验,使得即使在最小化状态下也能方便地管理和控制应用。在实际项目中,你可能还需要根据具体需求添加更...

    java实现系统托盘

    在Java编程中,实现系统托盘功能主要涉及到`java.awt.TrayIcon`类,这是Java Swing库的一部分,用于在操作系统的任务栏或系统托盘区域创建和管理图标。这个功能通常用于提供一种方式,使得即使主窗口被最小化或者...

    java程序实现系统托盘功能

    首先,要实现系统托盘功能,我们需要导入Java Swing库中的`javax.swing.*`和`java.awt.*`包,这两个包提供了必要的组件和工具。`javax.swing.TrayIcon`是实现系统托盘功能的核心类,而`java.awt.SystemTray`则代表了...

    JAVA实现系统托盘

    ### JAVA实现系统托盘知识点详解 #### 一、概述 在现代软件开发中,系统托盘功能被广泛应用于各类应用程序中,特别是在Windows操作系统上。它为用户提供了方便的应用程序控制方式,同时也帮助开发者以更优雅的方式...

    后台运行系统托盘功能

    应用程序通过在系统托盘中放置图标,可以实现以下功能: 1. **最小化到系统托盘**:当用户点击程序的最小化按钮时,程序并不关闭,而是隐藏其主窗口,只在系统托盘显示图标。这样,用户可以在任何时候通过点击托盘...

    JAVA系统托盘图标控制程序

    这个"JAVA系统托盘图标控制程序"是一个示例项目,展示了如何在Java中实现这样的功能。 首先,我们要了解`TrayIcon`类,这是Java Swing库中的一个关键组件,用于在系统托盘中创建和管理图标。在`TrayIconDemo.java`...

    java系统托盘实现缩小在开始菜单右下角的功能

    要实现这个功能,你需要使用Java的`java.awt.TrayIcon`类,这是Java Swing库的一部分,它提供了将图标添加到系统托盘的能力。以下是一个简单的步骤和知识点概述: 1. **检查系统支持**: 在使用`TrayIcon`之前,你...

    Swing实现高仿QQ2009

    5. **系统托盘**:在Swing中,JSystemTray类允许程序在任务栏的系统托盘区域显示图标和菜单,这是QQ2009的一个关键功能,用户可以在此处快速打开或关闭QQ,接收通知等。开发者需要利用JSystemTray和 TrayIcon 类来...

    系统托盘编程完全指南.rar

    在Windows API中,实现系统托盘图标主要通过`Shell_NotifyIcon`函数。这个函数允许程序向通知区域添加、更新或删除图标,并处理与图标相关的用户事件。要使用这个函数,开发者需要创建一个`NOTIFYICONDATA`结构,...

    圣诞倒计时小软件_实现系统托盘背景透明依附边沿自动隐藏

    总结来说,圣诞倒计时小软件是一个结合了Java Swing组件和高级特性的实用小应用,展示了如何使用Java实现桌面应用的各种功能,如窗体操作、系统托盘交互、自定义UI设计等。通过研究这个程序的源代码,开发者可以学习...

    Java代码生成系统托盘图标

    Java提供了Java AWT和Swing库来实现这个功能,允许开发者创建在系统托盘中显示的应用程序图标,以及与之相关的菜单和事件处理。下面将详细讲解如何使用Java代码生成系统托盘图标。 首先,你需要导入必要的Java库: ...

    java实现360悬浮球

    本项目“java实现360悬浮球”利用Swing创建了一个可以在屏幕任意位置移动并具有360度旋转效果的悬浮窗口,同时还实现了加入系统托盘和退出功能。下面我们将详细探讨这个项目涉及的关键知识点。 1. **Java Swing**: ...

    使用java的AWT或者swing来做任务栏菜单

    在Java中,任务栏菜单主要与系统托盘(System Tray)相关,这在AWT中称为`java.awt.TrayIcon`,而在Swing中则通过`javax.swing.JTrayIcon`实现。`TrayIcon`允许我们在系统任务栏上显示图标,并提供一个下拉菜单,...

    javaQQ实现托盘的小例子

    ### JavaQQ实现托盘功能详解 ...总之,Java提供的`SystemTray`API为桌面应用程序提供了强大的系统集成能力,通过本文的讲解和示例代码分析,相信读者已经掌握了在Java中实现系统托盘功能的核心技术和实践步骤。

    java实现托盘、气泡程序源码

    在Java中,系统托盘功能是通过`java.awt.TrayIcon`类提供的,该类是Java Swing库的一部分。要使用系统托盘,你需要确保操作系统支持并且Java虚拟机启用了系统托盘。你可以通过`java.awt.SystemTray`类的静态方法`is...

    java实现最小化到托盘

    在Java编程环境中,实现窗口应用最小化到系统托盘是一项常见的功能,特别是在开发桌面应用程序时。这个功能使得用户可以将程序窗口隐藏到任务栏的托盘区域,而不是将其关闭或最小化到任务栏,从而方便用户快速访问。...

    使用Java实现系统托盘功能的介绍(附源码以及截图)

    以下是一个详细的步骤来解释如何使用Java实现系统托盘功能: 1. **检查系统支持**: 在Java中,`SystemTray`类是用于处理系统托盘功能的。首先,我们需要检查当前操作系统是否支持系统托盘。这可以通过调用`...

Global site tag (gtag.js) - Google Analytics