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.
[code]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();
}
}
[/code] - Representa o tray icon