Ajuda com TrayIcon (Linux e Windows) [RESOLVIDO]

Boa tarde a todos, gostaria de uma ajuda com o código abaixo, aqui náo esta aprensentando erro nenhum quando compilo, mas não mostra nenhum trayicon na bandeja, alguem poderia me ajudar ?

segue o codigo:

    public static void main(String args[]) throws AWTException, InterruptedException {        
        if (SystemTray.isSupported()) {
        JOptionPane.showMessageDialog(null, "Bandeja do sistema é suportado.");        
        TrayIcon icon = new TrayIcon(getImage(), "Atualizador Tira Teima",createPopupMenu());
        icon.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent e) {
              new jFrame_AtualizadorTT().show();
          }
        });
        SystemTray.getSystemTray().add(icon);
        Thread.sleep(1000);
        icon.displayMessage("Atencao", "Sistema Funcionando",TrayIcon.MessageType.WARNING);
        } else {
               JOptionPane.showMessageDialog(null, "Bandeja do sistema não é suportado.");
          }
    }

  private static Image getImage() throws HeadlessException {
    Icon defaultIcon = MetalIconFactory.getTreeHardDriveIcon();
    Image img = new BufferedImage(defaultIcon.getIconWidth(),
    defaultIcon.getIconHeight(), BufferedImage.TYPE_4BYTE_ABGR);
    defaultIcon.paintIcon(new Panel(), img.getGraphics(), 0, 0);
    return img;
  }

  private static PopupMenu createPopupMenu() throws HeadlessException {
    PopupMenu menu = new PopupMenu();
    MenuItem exit = new MenuItem("Sair");
    exit.addActionListener(new ActionListener() {
     public void actionPerformed(ActionEvent e) {
       System.exit(0);
     }
    });
    menu.add(exit);
    return menu;
  }

OBS: O codigo acima esta dentro da classe do jFrame_AtualizadorTT

Desde já obrigado…

Oi,

Também não consegui identificar onde está o problema.
Provavelmente algum método esta levantando alguma exceção no qual não está sendo tratada.

Tente fazer assim:

[code]public static void main(String args[]) throws AWTException, InterruptedException {

  try
  {
     if (SystemTray.isSupported()) {   
     JOptionPane.showMessageDialog(null, "Bandeja do sistema é suportado.");           
     TrayIcon icon = new TrayIcon(getImage(), "Atualizador Tira Teima",createPopupMenu());   
     icon.addActionListener(new ActionListener() {   
     public void actionPerformed(ActionEvent e) {   
          new jFrame_AtualizadorTT().show();   
     }   
     });   
     SystemTray.getSystemTray().add(icon);   
     Thread.sleep(1000);   
     icon.displayMessage("Atencao", "Sistema Funcionando",TrayIcon.MessageType.WARNING);   
     } else {   
         JOptionPane.showMessageDialog(null, "Bandeja do sistema não é suportado.");   
     }   
  }
  catch (Exception ex) {
       ex.printStackTrace();
  }      

} [/code]

Obs: Não utilize o método show()… pois ele está deprecated. Utilize setVisible(true);

Tchauzin!

Olá lina, obrigado pela atenção, mas não funcionou ainda, estou verificando linha a linha para ver se encontro algo de errado, agora tem um detalhe muito curioso, quando utilizei a mesma classe no programa JCreator Pro o tray aparece normal, isso que não to intendenu direito, fora do netbeans roda de boa, passei o codigo pra um colega q tem o eclipse, e adivinha rodo normal tambem, será q pode ser algo no meu netbeans ?

OBS:Meu netbeans é o 6.5 e esta instalado no Ubuntu 9.04

Consegui fazer funcionar, eu estava chamando a classe errada, agora ficou assim:

public class Main {
    public static void main(final String[] args) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    jFrame_AtualizadorTT.main(args);                 
                } catch (AWTException ex) {
                    Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
                } catch (InterruptedException ex) {
                    Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
                }                
            }
        });
    }
}