title: java TrayIcon using image with transparent background
body: <p>I am using the following code to set a tray icon in Windows and Linux. It works wonderful in Windows and works okay in Linux. In Linux (Ubuntu) I have my panel set to be (somewhat) transparent and when I add a GIF (with a transparent background) the background of the icon shows up all grey and ugly (see image, green diamond "!")....Any ideas on how to make the GIF image I am adding "keep" its transparent background?</p>
  
  <p><a href="http://unarm.org/stackoverflow/panel_task.jpg">alt text http://unarm.org/stackoverflow/panel_task.jpg</a></p>
  
  <p>and the image I am using, if you'd like to test:</p>
  
  <p><a href="http://unarm.org/stackoverflow/green_info.gif">alt text http://unarm.org/stackoverflow/green_info.gif</a></p>
  
  <pre><code>import java.awt.*;
  import java.awt.event.*;
  
  public class TrayFun {
  
  
    static class ShowMessageListener implements ActionListener {
      TrayIcon trayIcon;
      String title;
      String message;
      TrayIcon.MessageType messageType;
      ShowMessageListener(
          TrayIcon trayIcon,
          String title,
          String message,
          TrayIcon.MessageType messageType) {
        this.trayIcon = trayIcon;
        this.title = title;
        this.message = message;
        this.messageType = messageType;
      }
      public void actionPerformed(ActionEvent e) {
        trayIcon.displayMessage(title, message, messageType);
      }
    }
  
    public static void main(String args[]) {
      Runnable runner = new Runnable() {
        public void run() {
          if (SystemTray.isSupported()) {
            final SystemTray tray = SystemTray.getSystemTray();
            Image image = Toolkit.getDefaultToolkit().getImage("green_info.png");
            PopupMenu popup = new PopupMenu();
            final TrayIcon trayIcon = new TrayIcon(image, "The Tip Text", popup);
            trayIcon.setImageAutoSize(true);
  
            MenuItem item = new MenuItem("Close");
        item.addActionListener(new ActionListener() {
              public void actionPerformed(ActionEvent e) {
            tray.remove(trayIcon);
              }
        });
            popup.add(item);
            try {
              tray.add(trayIcon);
            } catch (AWTException e) {
              System.err.println("Can't add to tray");
            }
          } else {
            System.err.println("Tray unavailable");
          }
        }
      };
      EventQueue.invokeLater(runner);
    }
  }
  </code></pre>