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)
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)
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);//<-------------------------------------------------
}
};