`

用JAVA实现程序最小化到托盘区

    博客分类:
  • Java
阅读更多

下面的这个程序简单地实现了把java应用程序缩小到托盘的方法.

序运行的jdk要是1.6才行,因为这是J2SDK1.6新加的一些类和方法.

import java.awt.*;
import java.io.*
;
import javax.swing.*
;
import java.awt.event.*
;
import
javax.imageio.ImageIO;

public class Test extends
JFrame{
   
private TrayIcon trayIcon;//托盘图标

    private SystemTray systemTray;//系统托盘
        
   
public
Test()
    {
       
super("系统托盘图标"
);
        systemTray
= SystemTray.getSystemTray();//获得系统托盘的实例

        setSize(150,150);
               
this
.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
               
this.setVisible(true
);   
       
try
{
            trayIcon
= new TrayIcon(ImageIO.read(new File("0.gif"
)));
            systemTray.add(trayIcon);
//设置托盘的图标,0.gif与该类文件同一目录

        }
       
catch
(IOException e1) {e1.printStackTrace();}
       
catch
(AWTException e2) {e2.printStackTrace();}
       
       
this
.addWindowListener(
               
new
WindowAdapter(){  
                   
public void
windowIconified(WindowEvent e){  
                        dispose();
//窗口最小化时dispose该窗口

                    }  
                });
       
        trayIcon.addMouseListener(
               
new
MouseAdapter(){
                   
public void
mouseClicked(MouseEvent e){
                       
if(e.getClickCount() == 2)//双击托盘窗口再现

                            setExtendedState(Frame.NORMAL);
                            setVisible(
true
);
                    }
                });       
    }  

   
public static void
main(String args[])
    {
       
new
Test();
    }
}

 

 

另:

package awt;

import java.awt.AWTException;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.TrayIcon;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.ImageIcon;
import javax.swing.JFrame;


public class TrayDemo extends JFrame {

private TrayIcon trayIcon = null; // 托盘图标

private SystemTray tray = null; // 本操作系统托盘的实例

public static TrayDemo trayDemo = new TrayDemo();

private TrayDemo() {
   init();
}

public void init() {
   if (SystemTray.isSupported()) { // 如果操作系统支持托盘
    this.tray();
   }
   this.setSize(300, 200); 
   this.setResizable(false);
   // 窗口关闭时触发事件 
   addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
     System.exit(0);
    }

    public void windowIconified(WindowEvent e) {   
     try {
      tray.add(trayIcon); // 将托盘图标添加到系统的托盘实例中
      //setVisible(false); // 使窗口不可视
      dispose();
     } catch (AWTException ex) {
      ex.printStackTrace();
     }
    }  
   });

}

private void tray() {

   tray = SystemTray.getSystemTray(); // 获得本操作系统托盘的实例
   ImageIcon icon = new ImageIcon("images/30.gif"); // 将要显示到托盘中的图标

   PopupMenu pop = new PopupMenu(); // 构造一个右键弹出式菜单
   MenuItem show = new MenuItem("打开程序(s)");
   MenuItem exit = new MenuItem("退出程序(x)");
   pop.add(show);
   pop.add(exit);
   trayIcon = new TrayIcon(icon.getImage(), "车辆管理系统", pop);

   /**
   * 添加鼠标监听器,当鼠标在托盘图标上双击时,默认显示窗口
   */
   trayIcon.addMouseListener(new MouseAdapter() {
    public void mouseClicked(MouseEvent e) {
     if (e.getClickCount() == 2) { // 鼠标双击
      tray.remove(trayIcon); // 从系统的托盘实例中移除托盘图标
      setExtendedState(JFrame.NORMAL);
      setVisible(true); // 显示窗口
      toFront();    
     }
    }
   });
   show.addActionListener(new ActionListener() { // 点击“显示窗口”菜单后将窗口显示出来
      public void actionPerformed(ActionEvent e) {
       tray.remove(trayIcon); // 从系统的托盘实例中移除托盘图标
       setExtendedState(JFrame.NORMAL);
       setVisible(true); // 显示窗口
       toFront();
      }
     });
   exit.addActionListener(new ActionListener() { // 点击“退出演示”菜单后退出程序
      public void actionPerformed(ActionEvent e) {
       System.exit(0); // 退出程序
      }
     });

}

/**
* 显示信息
*/
// 返回单一的实例对象
public static TrayDemo getInstanceTrayDemo() {
   return trayDemo;
}

// 处理窗口事件

}

 

分享到:
评论

相关推荐

    程序最小化到托盘工具

    实现程序最小化到托盘的技术细节涉及到编程语言和API调用。对于Windows平台,开发者通常使用C++、C#、Java或Python等语言,并调用Windows API函数,如`Shell_NotifyIcon`来实现这一功能。例如,在C#中,可以使用`...

    java实现最小化到托盘

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

    JFrame最小化到托盘

    "JFrame最小化到托盘"指的是当用户点击窗口的最小化按钮时,不是将窗口缩小到任务栏,而是将其隐藏到系统托盘区域。这种方式通常用于需要长时间运行的应用程序,如聊天软件、下载工具等,它能让用户在不占用桌面空间...

    程序最小化到托盘

    程序最小化到托盘意味着程序的窗口不再在任务栏上可见,而是变为一个图标显示在系统托盘区,用户可以通过点击这个图标来恢复程序窗口或者执行其他操作。 在Windows平台上,实现这个功能主要依赖于Windows API...

    教你怎么样把程序最小化到托盘

    在本文中,我们将深入探讨如何实现这一功能,以“教你怎么样把程序最小化到托盘”为主题,主要针对Windows操作系统,因为这是大多数用户熟悉的环境。 首先,我们需要理解托盘程序的基本原理。在Windows中,托盘程序...

    Java最小化到托盘的方法

    在Java中,实现应用程序最小化至系统托盘是一项常见但实用的功能,尤其对于后台服务或者不希望占据屏幕空间的应用程序而言。本文将详细介绍如何利用Java AWT包中的`SystemTray`类以及`TrayIcon`类来实现这一功能。 ...

    Java程序最小到系统托盘源代码

    通过以上步骤,你可以理解如何使用JNI和Java的`TrayIcon`类将Java程序最小化到系统托盘。这个源代码示例提供了一个很好的学习机会,帮助开发者掌握如何将Java和本地代码结合,以实现更丰富的功能。

    如何实现程序的托盘化

    ### 如何实现程序的托盘化 在计算机编程领域,特别是对于那些需要长期运行或作为后台服务的应用程序,...通过本文介绍的Java托盘化实现方法,开发者可以轻松地将此功能融入到自己的项目中,增强应用的实用性和便捷性。

    java程序实现系统托盘功能

    在Java编程环境中,实现系统托盘功能是一项常见的需求,它允许程序在主窗口最小化或关闭后仍然在操作系统任务栏的系统托盘区域保持活跃,从而提供便捷的访问入口,如QQ、微信等应用程序就广泛使用了这一特性。...

    最小化到系统托盘java

    ### 最小化到系统托盘Java实现解析 在日常软件开发过程中,经常会有将应用程序窗口最小化至系统托盘的需求,这种设计不仅节省了屏幕空间,还为用户提供了一种更为便捷的操作方式。本文将深入探讨如何使用Java实现这...

    java 托盘小例子

    在Java程序中使用系统托盘首先需要检查系统是否支持该功能,因为不是所有操作系统都提供托盘区域。可以通过`SystemTray`类的静态方法`getSystemTray()`来获取系统托盘实例,如果返回`null`,则表示不支持。 3. **...

    Java系统托盘 Java系统托盘

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

    托盘图标(最小化时显示)

    "托盘图标(最小化时显示)"这个主题主要涉及的是当应用程序最小化到任务栏时,如何让它们的图标仍然在托盘区域可见,以便用户可以方便地与这些程序交互。 1. **托盘区域的用途**: - 提供快速访问:用户可以通过...

    JAVA系统托盘图标控制程序

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

    一个缩小到托盘的程序

    这段描述告诉我们这是一个教学或示例项目,目的是展示如何实现将程序窗口最小化到托盘的功能。源代码意味着我们可以查看并理解整个过程,这对于学习编程或者解决类似问题的开发者来说非常有价值。描述中提到只有一个...

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

    Java系统托盘是Java应用程序与操作系统桌面环境交互的一种方式,它允许程序在主窗口最小化或隐藏时,仍然可以通过系统托盘图标进行操作。在Windows系统中,这种功能通常表现为程序图标出现在开始菜单右下角的任务栏...

    2022年用VB实现窗口图标最小化到通知栏Java教程.docx

    在VB编程中,将窗口图标最小化到通知栏是一个常见的需求,这主要涉及到Windows API的使用,特别是关于窗口管理和通知栏图标的API函数。以下是一个详细的步骤解释如何实现这一功能: 1. **捕获最小化事件**: - VB...

    Java 实现的qq程序,头像闪动,托盘图标闪动,聊天

    用户上线后自动加载用户信息,用户修改头像后其他用户也会自动加载更新,消息发送过来头像会跳动,当最小化到托盘后,托盘图标也会闪动。用户间可以传递文件,发送消息。服务端可以向每个用户发送消息 可以直接运行...

    java实现360悬浮球

    用户可以通过将悬浮球最小化到系统托盘,而不是关闭它。这需要实现TrayIcon类,并添加适当的监听器来处理点击事件。 8. **资源管理**: `icon`文件可能是一个PNG或JPEG图像,Java的ImageIcon类可以加载这种图像资源...

    java实现系统托盘

    这个功能通常用于提供一种方式,使得即使主窗口被最小化或者隐藏,用户仍然可以通过托盘图标与应用程序交互。例如,你可以实现一个点击托盘图标后弹出菜单,或者在托盘图标上添加右键点击事件来执行特定的操作,比如...

Global site tag (gtag.js) - Google Analytics