Vocês já devem ter visto muitos programas que quando clicamos no botão de fechar ou minimizar, ao invés de sair da aplicação vão para a barra de tarefas. Os mais curiosos devem se perguntar como implementar uma solução dessas. Vou responder, é algo muito fácil. E é isso que vou ensiná-los hoje!
Apesar de parecer muito código, verão que a parte que realmente nos interessa para a minimização é pequena, mas para fins de demonstração tive que criar uma Janela.
public class Janela extends JFrame{
/**
* Construtor da classe.
* @param nome
*/
public Janela(String nome) {
super(nome); // Coloca o título da Janela
setVisible(true); // Define a janela como visível
setBounds(50,50,370,150); // Define o tamanho e posição da tela
setDefaultCloseOperation(HIDE_ON_CLOSE); // Define o modo de fechamento
setResizable(false); // Define como não redimensionável
}
public static void main(String[] args) {
// Instancia nova janela
final Janela main = new Janela("Janela de Testes");
// Instancia um novo SystemTray
SystemTray tray = SystemTray.getSystemTray();
/**
* Pega uma imagem para definir como ícone.
*
* main.getClass().getClassLoader().getResource("icone.jpg")
* pega a imagem do pacote onde a Classe se encontra.
* Será bem útil na hora de exportar a aplicação.
*/
Image imageIcon = new ImageIcon((main.getClass()
.getClassLoader()
.getResource("icone.jpg")))
.getImage();
// Instancia e Define o icone do TrayIcon
TrayIcon trayIcon = new TrayIcon(imageIcon);
// Define o auto-ajuste da imagem
trayIcon.setImageAutoSize(true);
/**
* Instancia um mouse listener para ser usado no TrayIcon
*/
MouseListener mlOpcoes = new MouseListener(){
public void mouseClicked(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {
/**
* Se o mouse for clicado com a roda do mouse ou com
* o botão direito fechará a aplicação.
*/
if(e.getButton() == 2 || e.getButton() == 3){
System.exit(0);
}
}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
};
// adiciona o mouseListener no TrayIcon
trayIcon.addMouseListener(mlOpcoes);
try {
// Adiciona o Ícone no SystemTray
tray.add(trayIcon);
} catch (AWTException e) {}
}
}
0 comentários :
Postar um comentário