SystemTrayDemo2.java Source code

Java tutorial

Introduction

Here is the source code for SystemTrayDemo2.java

Source

import java.awt.AWTException;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
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.MouseMotionListener;
import java.awt.image.BufferedImage;

public class SystemTrayDemo2 {
    public static void main(String[] args) {
        if (!SystemTray.isSupported()) {
            return;
        }
        SystemTray tray = SystemTray.getSystemTray();

        Dimension size = tray.getTrayIconSize();
        BufferedImage bi = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_RGB);
        Graphics g = bi.getGraphics();

        g.setColor(Color.blue);
        g.fillRect(0, 0, size.width, size.height);
        g.setColor(Color.yellow);
        int ovalSize = (size.width < size.height) ? size.width : size.height;
        ovalSize /= 2;
        g.fillOval(size.width / 4, size.height / 4, ovalSize, ovalSize);

        try {
            PopupMenu popup = new PopupMenu();
            MenuItem miExit = new MenuItem("Exit");
            ActionListener al;
            al = new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    System.out.println("Goodbye");
                    System.exit(0);
                }
            };
            miExit.addActionListener(al);
            popup.add(miExit);

            TrayIcon ti = new TrayIcon(bi, "System Tray Demo #2", popup);

            al = new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    System.out.println(e.getActionCommand());
                }
            };
            ti.setActionCommand("My Icon");
            ti.addActionListener(al);

            MouseListener ml;
            ml = new MouseListener() {
                public void mouseClicked(MouseEvent e) {
                    System.out.println("Tray icon: Mouse clicked");
                }

                public void mouseEntered(MouseEvent e) {
                    System.out.println("Tray icon: Mouse entered");
                }

                public void mouseExited(MouseEvent e) {
                    System.out.println("Tray icon: Mouse exited");
                }

                public void mousePressed(MouseEvent e) {
                    System.out.println("Tray icon: Mouse pressed");
                }

                public void mouseReleased(MouseEvent e) {
                    System.out.println("Tray icon: Mouse released");
                }
            };
            ti.addMouseListener(ml);

            MouseMotionListener mml;
            mml = new MouseMotionListener() {
                public void mouseDragged(MouseEvent e) {
                    System.out.println("Tray icon: Mouse dragged");
                }

                public void mouseMoved(MouseEvent e) {
                    System.out.println("Tray icon: Mouse moved");
                }
            };
            ti.addMouseMotionListener(mml);

            tray.add(ti);
        } catch (AWTException e) {
            System.out.println(e.getMessage());
            return;
        }
    }

}