`
jacky68147527
  • 浏览: 211148 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JAVA实现系统托盘

    博客分类:
  • java
阅读更多
就不解释了,直接看源代码啊......(*^__^*)

/*
 * MainFrame.java
 *
 * Created on 2008年9月20日, 上午11:44
 */

package com.topking.tray.ui;

import java.awt.AWTException;
import java.awt.Image;
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.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.swing.ImageIcon;

/**
 *
 * @author  lzkj
 */
public class MainFrame extends javax.swing.JFrame implements ActionListener, WindowListener{

	// Variables declaration - do not modify
    private javax.swing.JLabel L_img;
    private javax.swing.JLabel L_img2;
    private PopupMenu pop;
    private MenuItem open,close;
    private TrayIcon trayicon;
    // End of variables declaration

    
    /** Creates new form MainFrame */
    public MainFrame() {
    	this.setTitle("Java实现系统托盘示例");
    	this.setLocation(300,300);
        initComponents();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {
    	    	
//        L_img = new javax.swing.JLabel(new ImageIcon((MainFrame.class).getResource("com/topking/tray/images/netbean1.png")));        
//        L_img2 = new javax.swing.JLabel(new ImageIcon((MainFrame.class).getResource("com/topking/tray/images/netbean2.png")));
        L_img = new javax.swing.JLabel(new ImageIcon(this.getClass().getClassLoader().getResource("com/topking/tray/images/netbean1.png")));        
        L_img2 = new javax.swing.JLabel(new ImageIcon(this.getClass().getClassLoader().getResource("com/topking/tray/images/netbean2.png")));  


        pop = new PopupMenu();
        open = new MenuItem("打开");
        open.addActionListener(this);
        
        close = new MenuItem("关闭");
        close.addActionListener(this);
        
        pop.add(open);
        pop.add(close);       
      
        if(SystemTray.isSupported()){
        	SystemTray tray = SystemTray.getSystemTray();
        	Image icon = this.getToolkit().getImage(this.getClass().getClassLoader().getResource("com/topking/tray/images/user_edit.png"));
        	trayicon = new TrayIcon(icon,"系统托盘示例(java)",pop);
        	trayicon.addMouseListener(new MouseListener(){

				public void mouseClicked(MouseEvent e) {
					// TODO Auto-generated method stub
					if(e.getClickCount()==2){
						openFrame();
					}
				}

				public void mouseEntered(MouseEvent e) {
					// TODO Auto-generated method stub
					
				}

				public void mouseExited(MouseEvent e) {
					// TODO Auto-generated method stub
					
				}

				public void mousePressed(MouseEvent e) {
					// TODO Auto-generated method stub
					
				}

				public void mouseReleased(MouseEvent e) {
					// TODO Auto-generated method stub
					
				}
        		
        	});
        	
        	try {
				tray.add(trayicon);
			} catch (AWTException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
        }

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(L_img2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 380, Short.MAX_VALUE)
                    .addComponent(L_img, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 380, Short.MAX_VALUE))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(L_img)
                .addGap(29, 29, 29)
                .addComponent(L_img2, javax.swing.GroupLayout.PREFERRED_SIZE, 222, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(39, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new MainFrame().setVisible(true);
            }
        });
    }

	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		if(e.getSource()==open){
			openFrame();
		}
		if(e.getSource()==close){
			System.exit(-1);
		}
	}

	public void openFrame(){
		this.setVisible(true);
		this.setAlwaysOnTop(true);
	}
	public void windowActivated(WindowEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	public void windowClosed(WindowEvent arg0) {
		// TODO Auto-generated method stub
		this.setVisible(false);
		this.dispose();
	}

	public void windowClosing(WindowEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	public void windowDeactivated(WindowEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	public void windowDeiconified(WindowEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	//窗口最小化
	public void windowIconified(WindowEvent arg0) {
		// TODO Auto-generated method stub		
		this.dispose();
	}

	public void windowOpened(WindowEvent arg0) {
		// TODO Auto-generated method stub
		
	}

    
}

JAR包在附件中……
分享到:
评论
2 楼 wjn811 2009-09-09  
博主 你好!

我在做这个系统托盘的时候 遇到一个问题.

我写的和你给出的托盘代码,双击都能运行(我已安装了JRE)

可是我从Netbeans6.7里,运行时, 托盘的弹出菜单上的中文字体就缺失了.

不知道你有没有遇到这样的情况?

看到一帖子:  http://www.iteye.com/topic/431055

也讲到了这个情况.


莫非你用的是GBK编码方式?

期待你的解决方案.谢谢
1 楼 Relucent 2008-09-22  
又是1.6的咚咚,看来要升级JDK了

相关推荐

    Java实现系统托盘

    jar文件双击可以执行,jar里有源代码,可以用解压缩工具查看。 Java实现系统托盘

    java实现系统托盘

    在`java实现系统托盘.java`文件中,你可能会看到一个使用`TrayIcon`类的例子。而在`java(JNI)实现系统托盘2.txt`中,文档可能详细解释了JNI实现的各个部分,包括本地方法的定义、C/C++代码的编写和编译过程。 无论...

    java 实现系统托盘

    解压即可运行,适用于初学者

    Java系统托盘 Java系统托盘

    Java中的系统托盘功能主要通过Java的Swing库来实现,下面我们将详细探讨如何使用Java实现系统托盘。 首先,我们需要导入相关的Java库,特别是javax.swing.*,因为系统托盘的功能主要包含在这个库中。以下是一个简单...

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

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

    java系统托盘 java 系统托盘 系统托盘 java 系统托盘java java任务栏 java 任务栏 任务栏java 任务栏 java 源代码

    总结来说,Java的系统托盘功能使得开发者可以创建更加友好且易于访问的应用程序,通过`TrayIcon`类提供的API,能够轻松实现图标显示、用户交互以及弹出菜单等功能,从而提升应用的易用性和可维护性。

    JAVA系统托盘图标控制程序

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

    java程序实现系统托盘功能

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

    Java如何构建系统托盘图标程序

    首先,我们需要了解Java中的`java.awt.TrayIcon`类,这是Java标准版(Java SE)从6.0版本开始引入的,专门用于实现系统托盘图标功能。`TrayIcon`类允许我们将图标和菜单项添加到系统托盘中,以便在应用程序运行时与...

    java实现了系统托盘的主类

    实现了java的系统托盘等等之类的。要看的可以see see 额

    Swing 实现系统托盘

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

    java实现系统托盘示例

    在Java中,从JDK 1.6开始,引入了`java.awt.SystemTray`和`java.awt.TrayIcon`这两个类来支持系统托盘的实现。`SystemTray`类代表系统的托盘区域,而`TrayIcon`类则用于表示托盘中的图标以及与其相关的操作和事件...

    file:///E:/Users/Administrator/Documents/Java实现托盘管理.docx

    首先,要使用Java实现系统托盘,必须确保当前操作系统支持这个特性。这可以通过调用`SystemTray.isSupported()`方法来检查。如果返回`true`,则表示系统支持系统托盘。 接下来,获取系统的托盘实例,这可以通过`...

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

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

    一个完整系统托盘(java)

    本资源提供了一个完整的Java系统托盘实现的源代码,可以帮助开发者学习如何在Java应用中集成系统托盘功能。 系统托盘在Java中是通过`java.awt.TrayIcon`类来实现的,该类是在Java 6中引入的。以下是对这个知识点的...

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

    这个"java实现托盘、气泡程序源码"是一个实用的示例,可以帮助开发者了解如何在Java应用程序中实现这样的功能。 首先,让我们详细了解一下Java中的系统托盘和气泡提示的实现原理: 1. **系统托盘(System Tray)**...

    java创建系统托盘实现(swt和jdk6分别实现)

    在Java编程中,有时我们需要创建一个系统托盘图标来提供应用程序的后台运行和快速访问功能。本主题将探讨如何在SWT(Standard Widget Toolkit)和JDK 6中实现这一功能。 首先,让我们从SWT(Standard Widget ...

Global site tag (gtag.js) - Google Analytics