Área de notificação

E ae galera!!

Seguinte…

Preciso que a minha aplicação fique em um ícone na Área de notificação qndo minimizada, como faço isso??

Valeu!! 8)

http://java.sun.com/javase/6/docs/api/java/awt/TrayIcon.html

Blz thingol!! Mas como ainda estou apendendo a manipular eventos me dê uma dica… como faço ele ir para o canto assim que o usuário clicar no botão minimizar??

Normalmente você faz uma outra coisa: você esconde a janela para atender ao evento minimizar. Então você cria um PopupMenu no seu TrayIcon que faz a parte de restaurar a janela que você escondeu. Não existe uma coisa que é “minimizar uma janela para o tray icon”; isso é só uma ilusão.

huuum…

mas se eu criar um botão, é possível?

Se você criar um botão para minimizar a janela, simplesmente coloque na ação dele

seuFrame.setVisible(false);

Isso “mandaria” seu frame para o TrayIcon. Após ser minimizado, se o usuário clicar no trayIcon e usar a opção para “restaurar” o frame, coloque na ação do menu popup

seuFrame.setVisible(true);

Blz!!

Estou usando o seguinte método dentro do meu Frame:

public void ativaTrayIcon(){
    	this.setVisible(false);
    	final TrayIcon trayIcon;
    	   	
		//obtem a informação se o java tem suporte ao SystemTray
		if(SystemTray.isSupported()){
			SystemTray tray = SystemTray.getSystemTray(); 
			
			//obtem a imagem padrão
			Image image = Toolkit.getDefaultToolkit().getImage("logo.jpg");
			
			//define tratadores de evento para clique
			MouseAdapter mouseAdapter = new MouseAdapter(){
				public void mouseClicked(MouseEvent e){
					System.out.println("Tray Icon - Clicado!");
				}
			};
			
			ActionListener exitListener = new ActionListener(){
				public void actionPerformed(ActionEvent e){
					System.exit(0);
				}
			};
			
			ActionListener abrirListener = new ActionListener(){
				public void actionPerformed(ActionEvent e){
					//aqui quero adicionar o setVisible(true) mas ñ sei como!!!
				}
			};
			
			//define um menu popup
			PopupMenu popup = new PopupMenu();
			MenuItem abrir = new MenuItem("Abrir");
			MenuItem sair = new MenuItem("Sair");
			abrir.addActionListener(abrirListener);
			sair.addActionListener(exitListener);
			popup.add(abrir);
			popup.add(sair);
			
			//cria o objeto de icone
			trayIcon = new TrayIcon(image, "Tarefas TargetIT", popup);
			
			//cria o tratamento de evento para elementos do menu
			ActionListener actionListener = new ActionListener(){
				public void actionPerformed(ActionEvent e){
					trayIcon.displayMessage("Action Event", "Um evento foi realizado!", TrayIcon.MessageType.INFO);
				}
			};
			
			//define as propriedades do icone
			trayIcon.setImageAutoSize(true);
			trayIcon.addActionListener(actionListener);
			trayIcon.addMouseListener(mouseAdapter);
			
			//registra na barra o ícone
			try{
				tray.add(trayIcon);
			}catch(AWTException e){
				e.printStackTrace();
			}
		}else{
			System.out.println("Não tem suporte ao System tray.");
		}
	}

Estou com dois problemas:
1° - Quando estava testando a funcionalidade em uma classe separada a imagem carregava certinho, agora ñ…
2° - o setVisibre(false) funciona tranquilo qndo chamo este método mas o setVisible(true) dentro do actionPerformed não é reconhecido.

Como já disse estou iniciando, tem alguns erros bobos que ainda ñ consigo identificar.

Desde já agradeço!!

aqui funcionou com setVisible(true) tranquilo…

MouseAdapter mouseAdapter = new MouseAdapter(){  
                public void mouseClicked(MouseEvent e){  
                    System.out.println("Tray Icon - Clicado!");  
                }  
            };  
              
            ActionListener exitListener = new ActionListener(){  
                public void actionPerformed(ActionEvent e){  
                    System.exit(0);  
                }  
            };  
              
            ActionListener abrirListener = new ActionListener(){  
                public void actionPerformed(ActionEvent e){  
                   setVisible(true);//<-------------------------------------------------
                }  
            };