Urgente Problemas System Tray Windows Vista

2 respostas
M

Amigos estou com um problema com o system tray, o código esta funcionando perfeitamente, mais funciona apenas no windows xp, no windows vista ele cria o icone ao lado do relogio tudo certo mais não mostra a mensagem de aviso este é o problema, desde já agradeço a ajuda de todos, Segue o código.

import java.awt.HeadlessException;

import java.awt.Image;

import java.awt.MenuItem;

import java.awt.Panel;

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.image.BufferedImage;

import javax.swing.Icon;

import javax.swing.JOptionPane;

import javax.swing.plaf.metal.MetalIconFactory;

/**
*

  • @author Marcelo
    
    */
    
    public class SysTray {
    
    public static void main(String[] args) throws Exception {
    
    TrayIcon icon = new TrayIcon(getImage(), Java application as a tray icon,createPopupMenu());
    
    icon.addActionListener(new ActionListener() {
    
    public void actionPerformed(ActionEvent e) {
    
    JOptionPane.showMessageDialog(null, Hey, you activated me!);
    
    }
    
    });
    
    SystemTray.getSystemTray().add(icon);
    

    Thread.sleep(1000);
    // esta é a mensagem que deveria aparecer mais só aparece no windows xp

    icon.displayMessage(“Atenção”, “Sistema Funcionando”,
    
    TrayIcon.MessageType.WARNING);
    
    System.out.println(“teste”);
    
    }
    
    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(Exit);
    
    exit.addActionListener(new ActionListener() {
    
    public void actionPerformed(ActionEvent e) {
    
    System.exit(0);
    
    }
    
    });
    
    menu.add(exit);
    
    return menu;
    
    }
    
    }
    

2 Respostas

E

O pessoal da Sun está ciente disso, mas não estão se empenhando muito para corrigir esse problema.

TrayIcon.displayMessage doesn’t work on MS Vista

Submit Date: 16-JUN-2008

M

Pois amigo, dei uma olhada no link que vc postou, realmente a sun não esta se importando mesmo, alguem sabe outra maneira que possa ser feito no windows vista ?
Abraço a todos.

Criado 25 de setembro de 2009
Ultima resposta 25 de set. de 2009
Respostas 2
Participantes 2