Gerar evento ao clicar no balão do SystemTray

1 resposta
fenix.cwb

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

1 Resposta

mateuscs

Bom dia,

Ao clicar no balão, boa pergunta, é possivel gerar um menu no systemtray.

Mais uma ação ao clicar no balão é uma boa pergunta.

:wink:

Criado 30 de agosto de 2011
Ultima resposta 31 de ago. de 2011
Respostas 1
Participantes 2