<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSwing%2FTrayIcon</id>
		<title>Java Tutorial/Swing/TrayIcon - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSwing%2FTrayIcon"/>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Swing/TrayIcon&amp;action=history"/>
		<updated>2026-04-07T20:25:24Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/Swing/TrayIcon&amp;diff=4003&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Swing/TrayIcon&amp;diff=4003&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 17:44, 31 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/Swing/TrayIcon&amp;diff=4004&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Swing/TrayIcon&amp;diff=4004&amp;oldid=prev"/>
				<updated>2010-05-31T15:34:30Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  Add mouse listener to TrayIcon ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.AWTException;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.MenuItem;&lt;br /&gt;
import java.awt.PopupMenu;&lt;br /&gt;
import java.awt.SystemTray;&lt;br /&gt;
import java.awt.TrayIcon;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import java.awt.event.MouseListener;&lt;br /&gt;
import java.awt.event.MouseMotionListener;&lt;br /&gt;
import java.awt.image.BufferedImage;&lt;br /&gt;
public class SystemTrayDemo2 {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    if (!SystemTray.isSupported()) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    SystemTray tray = SystemTray.getSystemTray();&lt;br /&gt;
    Dimension size = tray.getTrayIconSize();&lt;br /&gt;
    BufferedImage bi = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_RGB);&lt;br /&gt;
    Graphics g = bi.getGraphics();&lt;br /&gt;
    g.setColor(Color.blue);&lt;br /&gt;
    g.fillRect(0, 0, size.width, size.height);&lt;br /&gt;
    g.setColor(Color.yellow);&lt;br /&gt;
    int ovalSize = (size.width &amp;lt; size.height) ? size.width : size.height;&lt;br /&gt;
    ovalSize /= 2;&lt;br /&gt;
    g.fillOval(size.width / 4, size.height / 4, ovalSize, ovalSize);&lt;br /&gt;
    try {&lt;br /&gt;
      PopupMenu popup = new PopupMenu();&lt;br /&gt;
      MenuItem miExit = new MenuItem(&amp;quot;Exit&amp;quot;);&lt;br /&gt;
      ActionListener al;&lt;br /&gt;
      al = new ActionListener() {&lt;br /&gt;
        public void actionPerformed(ActionEvent e) {&lt;br /&gt;
          System.out.println(&amp;quot;Goodbye&amp;quot;);&lt;br /&gt;
          System.exit(0);&lt;br /&gt;
        }&lt;br /&gt;
      };&lt;br /&gt;
      miExit.addActionListener(al);&lt;br /&gt;
      popup.add(miExit);&lt;br /&gt;
      TrayIcon ti = new TrayIcon(bi, &amp;quot;System Tray Demo #2&amp;quot;, popup);&lt;br /&gt;
      al = new ActionListener() {&lt;br /&gt;
        public void actionPerformed(ActionEvent e) {&lt;br /&gt;
          System.out.println(e.getActionCommand());&lt;br /&gt;
        }&lt;br /&gt;
      };&lt;br /&gt;
      ti.setActionCommand(&amp;quot;My Icon&amp;quot;);&lt;br /&gt;
      ti.addActionListener(al);&lt;br /&gt;
      MouseListener ml;&lt;br /&gt;
      ml = new MouseListener() {&lt;br /&gt;
        public void mouseClicked(MouseEvent e) {&lt;br /&gt;
          System.out.println(&amp;quot;Tray icon: Mouse clicked&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        public void mouseEntered(MouseEvent e) {&lt;br /&gt;
          System.out.println(&amp;quot;Tray icon: Mouse entered&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        public void mouseExited(MouseEvent e) {&lt;br /&gt;
          System.out.println(&amp;quot;Tray icon: Mouse exited&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        public void mousePressed(MouseEvent e) {&lt;br /&gt;
          System.out.println(&amp;quot;Tray icon: Mouse pressed&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        public void mouseReleased(MouseEvent e) {&lt;br /&gt;
          System.out.println(&amp;quot;Tray icon: Mouse released&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
      };&lt;br /&gt;
      ti.addMouseListener(ml);&lt;br /&gt;
      MouseMotionListener mml;&lt;br /&gt;
      mml = new MouseMotionListener() {&lt;br /&gt;
        public void mouseDragged(MouseEvent e) {&lt;br /&gt;
          System.out.println(&amp;quot;Tray icon: Mouse dragged&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        public void mouseMoved(MouseEvent e) {&lt;br /&gt;
          System.out.println(&amp;quot;Tray icon: Mouse moved&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
      };&lt;br /&gt;
      ti.addMouseMotionListener(mml);&lt;br /&gt;
      tray.add(ti);&lt;br /&gt;
    } catch (AWTException e) {&lt;br /&gt;
      System.out.println(e.getMessage());&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Add Mouse motion listener to TrayIcon ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.AWTException;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.MenuItem;&lt;br /&gt;
import java.awt.PopupMenu;&lt;br /&gt;
import java.awt.SystemTray;&lt;br /&gt;
import java.awt.TrayIcon;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import java.awt.event.MouseListener;&lt;br /&gt;
import java.awt.event.MouseMotionListener;&lt;br /&gt;
import java.awt.image.BufferedImage;&lt;br /&gt;
public class SystemTrayDemo2 {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    if (!SystemTray.isSupported()) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    SystemTray tray = SystemTray.getSystemTray();&lt;br /&gt;
    Dimension size = tray.getTrayIconSize();&lt;br /&gt;
    BufferedImage bi = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_RGB);&lt;br /&gt;
    Graphics g = bi.getGraphics();&lt;br /&gt;
    g.setColor(Color.blue);&lt;br /&gt;
    g.fillRect(0, 0, size.width, size.height);&lt;br /&gt;
    g.setColor(Color.yellow);&lt;br /&gt;
    int ovalSize = (size.width &amp;lt; size.height) ? size.width : size.height;&lt;br /&gt;
    ovalSize /= 2;&lt;br /&gt;
    g.fillOval(size.width / 4, size.height / 4, ovalSize, ovalSize);&lt;br /&gt;
    try {&lt;br /&gt;
      PopupMenu popup = new PopupMenu();&lt;br /&gt;
      MenuItem miExit = new MenuItem(&amp;quot;Exit&amp;quot;);&lt;br /&gt;
      ActionListener al;&lt;br /&gt;
      al = new ActionListener() {&lt;br /&gt;
        public void actionPerformed(ActionEvent e) {&lt;br /&gt;
          System.out.println(&amp;quot;Goodbye&amp;quot;);&lt;br /&gt;
          System.exit(0);&lt;br /&gt;
        }&lt;br /&gt;
      };&lt;br /&gt;
      miExit.addActionListener(al);&lt;br /&gt;
      popup.add(miExit);&lt;br /&gt;
      TrayIcon ti = new TrayIcon(bi, &amp;quot;System Tray Demo #2&amp;quot;, popup);&lt;br /&gt;
      al = new ActionListener() {&lt;br /&gt;
        public void actionPerformed(ActionEvent e) {&lt;br /&gt;
          System.out.println(e.getActionCommand());&lt;br /&gt;
        }&lt;br /&gt;
      };&lt;br /&gt;
      ti.setActionCommand(&amp;quot;My Icon&amp;quot;);&lt;br /&gt;
      ti.addActionListener(al);&lt;br /&gt;
      MouseListener ml;&lt;br /&gt;
      ml = new MouseListener() {&lt;br /&gt;
        public void mouseClicked(MouseEvent e) {&lt;br /&gt;
          System.out.println(&amp;quot;Tray icon: Mouse clicked&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        public void mouseEntered(MouseEvent e) {&lt;br /&gt;
          System.out.println(&amp;quot;Tray icon: Mouse entered&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        public void mouseExited(MouseEvent e) {&lt;br /&gt;
          System.out.println(&amp;quot;Tray icon: Mouse exited&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        public void mousePressed(MouseEvent e) {&lt;br /&gt;
          System.out.println(&amp;quot;Tray icon: Mouse pressed&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        public void mouseReleased(MouseEvent e) {&lt;br /&gt;
          System.out.println(&amp;quot;Tray icon: Mouse released&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
      };&lt;br /&gt;
      ti.addMouseListener(ml);&lt;br /&gt;
      MouseMotionListener mml;&lt;br /&gt;
      mml = new MouseMotionListener() {&lt;br /&gt;
        public void mouseDragged(MouseEvent e) {&lt;br /&gt;
          System.out.println(&amp;quot;Tray icon: Mouse dragged&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        public void mouseMoved(MouseEvent e) {&lt;br /&gt;
          System.out.println(&amp;quot;Tray icon: Mouse moved&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
      };&lt;br /&gt;
      ti.addMouseMotionListener(mml);&lt;br /&gt;
      tray.add(ti);&lt;br /&gt;
    } catch (AWTException e) {&lt;br /&gt;
      System.out.println(e.getMessage());&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Add PropertyChangeListener to TrayIcon ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.AWTException;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.SystemTray;&lt;br /&gt;
import java.awt.TrayIcon;&lt;br /&gt;
import java.awt.image.BufferedImage;&lt;br /&gt;
import java.beans.PropertyChangeEvent;&lt;br /&gt;
import java.beans.PropertyChangeListener;&lt;br /&gt;
public class SystemTrayDemo1 {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    if (!SystemTray.isSupported()) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    SystemTray tray = SystemTray.getSystemTray();&lt;br /&gt;
    PropertyChangeListener pcl;&lt;br /&gt;
    pcl = new PropertyChangeListener() {&lt;br /&gt;
      public void propertyChange(PropertyChangeEvent pce) {&lt;br /&gt;
        System.out.println(&amp;quot;Property changed = &amp;quot; + pce.getPropertyName());&lt;br /&gt;
        TrayIcon[] tia = (TrayIcon[]) pce.getOldValue();&lt;br /&gt;
        if (tia != null) {&lt;br /&gt;
          System.out.println(&amp;quot;Old tray icon array contents: &amp;quot;);&lt;br /&gt;
          for (int i = 0; i &amp;lt; tia.length; i++)&lt;br /&gt;
            System.out.println(tia[i]);&lt;br /&gt;
          System.out.println();&lt;br /&gt;
        }&lt;br /&gt;
        tia = (TrayIcon[]) pce.getNewValue();&lt;br /&gt;
        if (tia != null) {&lt;br /&gt;
          System.out.println(&amp;quot;New tray icon array contents: &amp;quot;);&lt;br /&gt;
          for (int i = 0; i &amp;lt; tia.length; i++)&lt;br /&gt;
            System.out.println(tia[i]);&lt;br /&gt;
          System.out.println();&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    tray.addPropertyChangeListener(&amp;quot;trayIcons&amp;quot;, pcl);&lt;br /&gt;
    Dimension size = tray.getTrayIconSize();&lt;br /&gt;
    BufferedImage bi = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_RGB);&lt;br /&gt;
    Graphics g = bi.getGraphics();&lt;br /&gt;
    g.setColor(Color.blue);&lt;br /&gt;
    g.fillRect(0, 0, size.width, size.height);&lt;br /&gt;
    g.setColor(Color.yellow);&lt;br /&gt;
    int ovalSize = (size.width &amp;lt; size.height) ? size.width : size.height;&lt;br /&gt;
    ovalSize /= 2;&lt;br /&gt;
    g.fillOval(size.width / 4, size.height / 4, ovalSize, ovalSize);&lt;br /&gt;
    TrayIcon icon = null;&lt;br /&gt;
    tray.add(icon = new TrayIcon(bi));&lt;br /&gt;
    Thread.sleep(3000);&lt;br /&gt;
    tray.remove(icon);&lt;br /&gt;
    Thread.sleep(3000);&lt;br /&gt;
    System.exit(0);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Create Tray Icon ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.AWTException;&lt;br /&gt;
import java.awt.Image;&lt;br /&gt;
import java.awt.SystemTray;&lt;br /&gt;
import java.awt.Toolkit;&lt;br /&gt;
import java.awt.TrayIcon;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
public class Test {&lt;br /&gt;
  static Image image = Toolkit.getDefaultToolkit().getImage(&amp;quot;images/tray.gif&amp;quot;);&lt;br /&gt;
  static TrayIcon trayIcon = new TrayIcon(image, &amp;quot;Tester2&amp;quot;);&lt;br /&gt;
  public static void main(String[] a) throws Exception {&lt;br /&gt;
    if (SystemTray.isSupported()) {&lt;br /&gt;
      SystemTray tray = SystemTray.getSystemTray();&lt;br /&gt;
      trayIcon.setImageAutoSize(true);&lt;br /&gt;
      trayIcon.addActionListener(new ActionListener() {&lt;br /&gt;
        public void actionPerformed(ActionEvent e) {&lt;br /&gt;
          System.out.println(&amp;quot;In here&amp;quot;);&lt;br /&gt;
          trayIcon.displayMessage(&amp;quot;Tester!&amp;quot;, &amp;quot;Some action performed&amp;quot;, TrayIcon.MessageType.INFO);&lt;br /&gt;
        }&lt;br /&gt;
      });&lt;br /&gt;
      try {&lt;br /&gt;
        tray.add(trayIcon);&lt;br /&gt;
      } catch (AWTException e) {&lt;br /&gt;
        System.err.println(&amp;quot;TrayIcon could not be added.&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Demonstrating a System Tray That Responds to Selection ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.AWTException;&lt;br /&gt;
import java.awt.Image;&lt;br /&gt;
import java.awt.MenuItem;&lt;br /&gt;
import java.awt.PopupMenu;&lt;br /&gt;
import java.awt.SystemTray;&lt;br /&gt;
import java.awt.Toolkit;&lt;br /&gt;
import java.awt.TrayIcon;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.beans.PropertyChangeEvent;&lt;br /&gt;
import java.beans.PropertyChangeListener;&lt;br /&gt;
public class ActiveTray {&lt;br /&gt;
  public static void main(String args[]) throws Exception{&lt;br /&gt;
    if (SystemTray.isSupported() == false) {&lt;br /&gt;
      System.err.println(&amp;quot;No system tray available&amp;quot;);&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    final SystemTray tray = SystemTray.getSystemTray();&lt;br /&gt;
    PropertyChangeListener propListener = new PropertyChangeListener() {&lt;br /&gt;
      public void propertyChange(PropertyChangeEvent evt) {&lt;br /&gt;
        TrayIcon oldTray[] = (TrayIcon[]) evt.getOldValue();&lt;br /&gt;
        TrayIcon newTray[] = (TrayIcon[]) evt.getNewValue();&lt;br /&gt;
        System.out.println(oldTray.length + &amp;quot; / &amp;quot; + newTray.length);&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    tray.addPropertyChangeListener(&amp;quot;trayIcons&amp;quot;, propListener);&lt;br /&gt;
    Image image = Toolkit.getDefaultToolkit().getImage(&amp;quot;jpgIcon.jpg&amp;quot;);&lt;br /&gt;
    PopupMenu popup = new PopupMenu();&lt;br /&gt;
    MenuItem item = new MenuItem(&amp;quot;Hello, World&amp;quot;);&lt;br /&gt;
    final TrayIcon trayIcon = new TrayIcon(image, &amp;quot;Tip Text&amp;quot;, popup);&lt;br /&gt;
    ActionListener menuActionListener = new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent e) {&lt;br /&gt;
        trayIcon.displayMessage(&amp;quot;Good-bye&amp;quot;, &amp;quot;Cruel World&amp;quot;, TrayIcon.MessageType.WARNING);&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    item.addActionListener(menuActionListener);&lt;br /&gt;
    popup.add(item);&lt;br /&gt;
    ActionListener actionListener = new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent e) {&lt;br /&gt;
        tray.remove(trayIcon);&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    trayIcon.addActionListener(actionListener);&lt;br /&gt;
    tray.add(trayIcon);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Remove Icon from TrayIcon ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.AWTException;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.SystemTray;&lt;br /&gt;
import java.awt.TrayIcon;&lt;br /&gt;
import java.awt.image.BufferedImage;&lt;br /&gt;
import java.beans.PropertyChangeEvent;&lt;br /&gt;
import java.beans.PropertyChangeListener;&lt;br /&gt;
public class SystemTrayDemo1 {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    if (!SystemTray.isSupported()) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    SystemTray tray = SystemTray.getSystemTray();&lt;br /&gt;
    PropertyChangeListener pcl;&lt;br /&gt;
    pcl = new PropertyChangeListener() {&lt;br /&gt;
      public void propertyChange(PropertyChangeEvent pce) {&lt;br /&gt;
        System.out.println(&amp;quot;Property changed = &amp;quot; + pce.getPropertyName());&lt;br /&gt;
        TrayIcon[] tia = (TrayIcon[]) pce.getOldValue();&lt;br /&gt;
        if (tia != null) {&lt;br /&gt;
          System.out.println(&amp;quot;Old tray icon array contents: &amp;quot;);&lt;br /&gt;
          for (int i = 0; i &amp;lt; tia.length; i++)&lt;br /&gt;
            System.out.println(tia[i]);&lt;br /&gt;
          System.out.println();&lt;br /&gt;
        }&lt;br /&gt;
        tia = (TrayIcon[]) pce.getNewValue();&lt;br /&gt;
        if (tia != null) {&lt;br /&gt;
          System.out.println(&amp;quot;New tray icon array contents: &amp;quot;);&lt;br /&gt;
          for (int i = 0; i &amp;lt; tia.length; i++)&lt;br /&gt;
            System.out.println(tia[i]);&lt;br /&gt;
          System.out.println();&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    tray.addPropertyChangeListener(&amp;quot;trayIcons&amp;quot;, pcl);&lt;br /&gt;
    Dimension size = tray.getTrayIconSize();&lt;br /&gt;
    BufferedImage bi = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_RGB);&lt;br /&gt;
    Graphics g = bi.getGraphics();&lt;br /&gt;
    g.setColor(Color.blue);&lt;br /&gt;
    g.fillRect(0, 0, size.width, size.height);&lt;br /&gt;
    g.setColor(Color.yellow);&lt;br /&gt;
    int ovalSize = (size.width &amp;lt; size.height) ? size.width : size.height;&lt;br /&gt;
    ovalSize /= 2;&lt;br /&gt;
    g.fillOval(size.width / 4, size.height / 4, ovalSize, ovalSize);&lt;br /&gt;
    TrayIcon icon = null;&lt;br /&gt;
    tray.add(icon = new TrayIcon(bi));&lt;br /&gt;
    Thread.sleep(3000);&lt;br /&gt;
    tray.remove(icon);&lt;br /&gt;
    Thread.sleep(3000);&lt;br /&gt;
    System.exit(0);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Using system tray ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.Image;&lt;br /&gt;
import java.awt.MenuItem;&lt;br /&gt;
import java.awt.PopupMenu;&lt;br /&gt;
import java.awt.SystemTray;&lt;br /&gt;
import java.awt.Toolkit;&lt;br /&gt;
import java.awt.TrayIcon;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import javax.swing.JOptionPane;&lt;br /&gt;
public class SystemTrayDemo {&lt;br /&gt;
  public static void main(String[] args)throws Exception {&lt;br /&gt;
    if (!SystemTray.isSupported()) {&lt;br /&gt;
      System.out.println(&amp;quot;SystemTray is not supported&amp;quot;);&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    SystemTray tray = SystemTray.getSystemTray();&lt;br /&gt;
    Toolkit toolkit = Toolkit.getDefaultToolkit();&lt;br /&gt;
    Image image = toolkit.getImage(&amp;quot;trayIcon.jpg&amp;quot;);&lt;br /&gt;
    PopupMenu menu = new PopupMenu();&lt;br /&gt;
    MenuItem messageItem = new MenuItem(&amp;quot;Show Message&amp;quot;);&lt;br /&gt;
    messageItem.addActionListener(new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent e) {&lt;br /&gt;
        JOptionPane.showMessageDialog(null, &amp;quot;www.jexp.ru&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    menu.add(messageItem);&lt;br /&gt;
    MenuItem closeItem = new MenuItem(&amp;quot;Close&amp;quot;);&lt;br /&gt;
    closeItem.addActionListener(new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent e) {&lt;br /&gt;
        System.exit(0);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    menu.add(closeItem);&lt;br /&gt;
    TrayIcon icon = new TrayIcon(image, &amp;quot;SystemTray Demo&amp;quot;, menu);&lt;br /&gt;
    icon.setImageAutoSize(true);&lt;br /&gt;
    tray.add(icon);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>