sexta-feira, 16 de maio de 2008

Tutorial Tray Icon no Java SE 6.0

O uso da nova funcionalidade de Tray Icon que esta no Java SE 6.0.


A versão do Java Platform, Standard Edition 6 (Java SE 6) permite o acesso a bandeja do sistema (adicionar os Tray Icons), em puro Java, com a ajuda de duas classes do pacote java.awt: SystemTray e TrayIcon. Essas classes tem a capacidade de adicionar icones na bandeja, menus pop-ups e flutuantes.



O que é a Bandeja do sistema?

Bandeja do sistema (Figura) é um local especializado, normalmente, na parte inferior da área de trabalho, onde os usuários podem acessar continuamente executando programas. Normalmente é chamado também de Notification Area ou System Tray. Em cada sistema, esta bandeja área é partilhada por todas as aplicações em execução no desktop.

Acessando a bandeja do sistema com java


O java.awt.SystemTray classe representa bandeja do sistema para o sistema operacional. Você pode acessar chamando o método estático SystemTray.getSystemTray (). No entanto antes devemos sempre verificar se o sistema suporta usando o método estático SystemTray.isSupported (). Se a bandeja do sistema não está presente ou não existe nesta plataforma, o isSupported () método retorna false. Se a aplicação tenta usar getSystemTray () sem suportar o método irá lançar um java.lang.UnsupportedOperationException.



Código de Exemplo:
O trecho seguinte código demonstra como acessar e personalizar bandeja do sistema:




public class TrayIconTeste {

/**
* Representa o tray icon
**/
private TrayIcon trayIcon;

public TrayIconTeste() {

//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
// botao esquerdo
trayIcon.addActionListener(actionListener);

try {
tray.add(trayIcon);
//balão de aviso
trayIcon.displayMessage("Exempo", "Balao de Aviso!", 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) {
TrayIconTeste exemplo = new TrayIconTeste();
}
}




Implementando TrayIcon

O objeto TrayIcon representa um ícone da bandeja. No entanto, a funcionalidade TrayIcon ultrapassa simplesmente o ícone que é mostrado na bandeja. Pode também ter um texto dica, AWT um menu popup, e um conjunto de ouvintes associados com ele.

A TrayIcon gera vários MouseEvents (pressionado, liberado, e clicado) e suporta a adição de correspondentes ouvintes para receber notificação desses acontecimentos. O TrayIcon por padrão, quando um direito do mouse ele exibe o especificado menu popup. Quando o mouse passa em cima do TrayIcon, a dica é exibida. A TrayIcon também pode gerar um ActionEvent. Em algumas plataformas, isso ocorre quando o usuário seleciona o ícone da bandeja usando o mouse ou teclado.


Espero que consigam dar mais vida a suas aplicações Desktop.

Nota: Para executar o código deste tutorial, você deve baixar e instalar o JDK 6.0

Projeto do netbeans ExemploTrayIcon.zip


[]'s

Um comentário:

  1. putz.. procurei isso por mto tempo!!

    excelente..

    mto bom tutorial!!!

    ResponderExcluir