Bom dia! Estou com dificuldades em resolver alguns pequenos detalhes de uma aplicação que estou desenvolvendo aqui para a minha empresa. Tenho um System Tray que deve notificar o usuário quanto a chegada de e-mail, chat, recado e outras notificações pertencentes a empresa. O System Tray já está pronto (conforme código abaixo) mas quando o usuário é notificado deve gerar uma informação no ícone e ao clicar nesta janela deverá abrir um pop-up e listar os eventos. Aí está minha dúvida, no código não estou conseguindo inserir um frame com uma lista. Será que alguém pode me explicar com "chamo" este frame, pois no código abre uma janela de mensagem e confirmação.
import java.awt.AWTException;
import java.awt.CheckboxMenuItem;
import java.awt.Image;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
/**
*
*
* @author Mario Jorge Pereira
**/
public class Exemplo {
/**
* Representa o tray icon
**/
private TrayIcon trayIcon;
public Exemplo() {
//Verifica se o S.O. suporta tray icon
if (SystemTray.isSupported()) {
//Obtem a bandeja do S.O.
SystemTray tray = SystemTray.getSystemTray();
//Carregando a imagem tray.gif
Image image = Toolkit.getDefaultToolkit().getImage("tray.gif");
//ação de executar
ActionListener actionListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "Executar");
}
};
//ação de sair
ActionListener sairListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "Sair");
System.exit(0);
}
};
PopupMenu popup = new PopupMenu();
//Opção executar
MenuItem executarItem = new MenuItem("Executar");
executarItem.addActionListener(actionListener);
popup.add(executarItem);
//submenu
PopupMenu submenu = new PopupMenu("sub-menu");
popup.add(submenu);
//checkbox
submenu.add(new CheckboxMenuItem("Check box"));
//Opção sair
MenuItem sairItem = new MenuItem("Sair");
sairItem.addActionListener(sairListener);
popup.add(sairItem);
// Criando o tray icon e colocando o popup para o clique com o botão direito
trayIcon = new TrayIcon(image, "Exemplo - tooltip ", popup);
//Auto-ajuste do tamanho
trayIcon.setImageAutoSize(true);
//Registrando o escutador para evento de clique com o botao esquerdo
trayIcon.addActionListener(actionListener);
try {
tray.add(trayIcon);
//balão de aviso
trayIcon.displayMessage("IntranetMaker", "Chegaram novas solicitações!", TrayIcon.MessageType.INFO);
} catch (AWTException e) {
System.err.println("TrayIcon não pode ser adicionado no sistema.");
}
} else {
System.err.println("Bandeja do sistema não é suportado.");
}
}
public static void main(String[] args) {
Exemplo exemplo = new Exemplo();
}
}
