Olá Pessoal.
Seria possível gerar um evento ao clicar em um balãozinho de um SystemTray?
Pesquisei bastante, várias literaturas, na internet, professores, mas não achei a solução.
Estou quase abandonando a idéia.
Segue o código do que tenho. Já tentei todos os eventos de mouse, mas sem sucesso.
import java.awt.Image;
import java.awt.MenuItem;
import java.awt.Point;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.Window;
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.peer.MouseInfoPeer;
import javax.swing.JOptionPane;
import javax.swing.event.MouseInputListener;
/**
*
@author Guilherme Gabriel
*/
public class TesteSystemTray{
/** Cria nova instância da Classe */
public TesteSystemTray() {
createSystemTray();
}
public static void main(String[] args) {
new TesteSystemTray();
}
private void createSystemTray() {
// criando a classe que gerencia a bandeja
SystemTray tray = SystemTray.getSystemTray();
if (!SystemTray.isSupported()) {
System.err.println("Não é possível rodar a aplicação");
System.exit(0);
}
// icone que será exibido na bandeja
Image icon = Toolkit.getDefaultToolkit().createImage(getClass().getResource("smile.gif").getPath());
PopupMenu menu = new PopupMenu();
// item para sair
MenuItem itemSair = new MenuItem("Sair");
itemSair.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
menu.add(itemSair);
// item para uma opção qualquer
MenuItem itemOption = new MenuItem("Opção");
itemOption.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "Clicou no Opções!");
}
});
menu.add(itemOption);
TrayIcon trayIcon = new TrayIcon(icon, "Tooltip", menu);
try {
// adiciona na bandeja do sistema
tray.add(trayIcon);
// exibindo um "tooltip" para o tray
trayIcon.displayMessage("SystemTray Demo",
"SystemTray nativo do Java. Clique Aqui!",
TrayIcon.MessageType.INFO);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
Explicando melhor:
Desde já, grato