Como implementar a função da bandeja do sistema em Java.
Diagrama de exemplo
Diagrama de estrutura do pacote de projeto
Captura de tela da operação do sistema
Aplicando a descrição lógica principal, ocultar-se na bandeja significa essencialmente ocultar o formulário, ou seja, setVisible(false), e exibir o formulário significa setVisible(true).
O código do projeto é o seguinte:
importar java.awt.AWTException;
importar java.awt.MenuItem;
importar java.awt.PopupMenu;
importar java.awt.SystemTray;
importar java.awt.TrayIcon;
importar java.awt.event.ActionEvent;
importar java.awt.event.ActionListener;
importar java.net.URL;
importar javax.swing.ImageIcon;
importar javax.swing.JFrame;
importar javax.swing.JMenu;
importar javax.swing.JMenuBar;
importar javax.swing.JMenuItem;
classe pública MainFrame estende JFrame implementa ActionListener{
privado estático final longo serialVersionUID = -7078030311369039390L;
menu JMenu privado;
privado JMenuBar jmenuBar;
private String [] jmItemName = {"Colocar na bandeja","Saída do sistema"};
MainFrame público(){
super("lista telefônica");
iniciar();
this.setSize(500.400);
this.setJMenuBar(jmenuBar);
this.setLocationRelativeTo(nulo);
systemTray(); //bandeja do sistema
}
/**
* Interface de inicialização
*/
inicialização pública void(){
menu = new JMenu("Formulário do Sistema");
for(int i=0; i<jmItemName.length; i++){
JMenuItem menuItem = new JMenuItem(jmItemNome[i]);
menuItem.addActionListener(this);
menu.add(menuItem);
}
this.jmenuBar = new JMenuBar();
this.jmenuBar.add(menu);
}
@Substituir
public void actionPerformed(ActionEvent e) {
String ações = e.getActionCommand();
if("Colocar na bandeja".equals(actions)){
this.setVisible(falso);
}
if("Saída do sistema".equals(actions)){
Sistema.exit(0);
}
}
/**Processamento do ícone da bandeja do sistema.*/
sistema vazio privadoTray(){
if(SystemTray.isSupported()){ //Determina se o sistema suporta a função de bandeja.
Recurso URL = this.getClass().getResource("systray.jpg");
ImageIcon icon = new ImageIcon(resource); //Criar objeto de imagem
PopupMenu popupMenu = new PopupMenu(); //Cria um objeto de menu pop-up
MenuItem itemExit = new MenuItem("Sair do sistema"); //Cria o item de saída no menu pop-up
MenuItem itemShow = new MenuItem("Exibir formulário"); //Cria um item de exibição do formulário principal no menu pop-up.
itemExit.addActionListener(new ActionListener() { //Adiciona um ouvinte de evento à imagem de saída
@Substituir
public void actionPerformed(ActionEvent e) {
Sistema.exit(0);
}
});
itemShow.addActionListener(new ActionListener() { //Adiciona um ouvinte de evento para minimizar o formulário.
@Substituir
public void actionPerformed(ActionEvent e) {
setVisible(verdadeiro);
}
});
popupMenu.add(itemExit);
popupMenu.add(itemMostrar);
TrayIcon bandejaIcon = new TrayIcon(icon.getImage(),"Sistema de Agenda", popupMenu);
SystemTray sysTray = SystemTray.getSystemTray();
tentar {
sysTray.add(trayIcon);
} capturar (AWTException e1) { }
}
}
/**
* Método principal
* @param argumentos
*/
public static void main(String[] args) {
novo MainFrame().setVisible(true);
}
}