Comment implémenter la fonction de la barre d'état système en Java.
Exemple de diagramme
Diagramme de structure du paquet de projet
Capture d'écran du fonctionnement du système
En appliquant la description logique de base, se cacher dans la barre d'état signifie essentiellement masquer le formulaire. C'est-à-dire setVisible (false), et afficher le formulaire signifie setVisible (true).
Le code du projet est le suivant :
importer java.awt.AWTException ;
importer java.awt.MenuItem ;
importer java.awt.PopupMenu ;
importer java.awt.SystemTray ;
importer java.awt.TrayIcon ;
importer java.awt.event.ActionEvent ;
importer java.awt.event.ActionListener ;
importer java.net.URL ;
importer javax.swing.ImageIcon ;
importer javax.swing.JFrame ;
importer javax.swing.JMenu ;
importer javax.swing.JMenuBar ;
importer javax.swing.JMenuItem ;
la classe publique MainFrame étend JFrame implémente ActionListener{
privé statique final long serialVersionUID = -7078030311369039390L;
menu JMenu privé ;
JMenuBar privé jmenuBar ;
private String [] jmItemName = {"Placer dans le bac", "Sortie du système"};
public MainFrame(){
super("annuaire téléphonique");
init();
this.setSize(500 400);
this.setJMenuBar(jmenuBar);
this.setLocationRelativeTo(null);
systemTray(); //barre d'état système
}
/**
* Interface d'initialisation
*/
public void init(){
menu = new JMenu("Formulaire Système");
pour(int i=0; i<jmItemName.length; i++){
JMenuItem menuItem = new JMenuItem(jmItemName[i]);
menuItem.addActionListener(this);
menu.add(menuItem);
}
this.jmenuBar = new JMenuBar();
this.jmenuBar.add(menu);
}
@Outrepasser
public void actionPerformed(ActionEvent e) {
Actions de chaîne = e.getActionCommand();
if("Placer sur le plateau".equals(actions)){
this.setVisible(false);
}
if("Sortie du système".equals(actions)){
Système.exit(0);
}
}
/**Traitement des icônes de la barre d'état système.*/
système vide privéTray(){
if(SystemTray.isSupported()){ //Détermine si le système prend en charge la fonction tray.
Ressource URL = this.getClass().getResource("systray.jpg"); //Obtenir le chemin de l'image
Icône ImageIcon = new ImageIcon (ressource); // Créer un objet image
PopupMenu popupMenu = new PopupMenu(); //Créer un objet de menu contextuel
MenuItem itemExit = new MenuItem("Quitter le système"); //Créer l'élément de sortie dans le menu contextuel
MenuItem itemShow = new MenuItem("Afficher le formulaire"); //Créer un élément de formulaire principal d'affichage dans le menu contextuel.
itemExit.addActionListener(new ActionListener() { //Ajouter un écouteur d'événement à l'image de sortie
@Outrepasser
public void actionPerformed(ActionEvent e) {
Système.exit(0);
}
});
itemShow.addActionListener(new ActionListener() { //Ajoute un écouteur d'événement pour minimiser le formulaire.
@Outrepasser
public void actionPerformed(ActionEvent e) {
setVisible(vrai);
}
});
popupMenu.add(itemExit);
popupMenu.add(itemShow);
TrayIcon trayIcon = new TrayIcon(icon.getImage(),"Système de répertoire téléphonique",popupMenu);
SystemTray sysTray = SystemTray.getSystemTray();
essayer {
sysTray.add(trayIcon);
} catch (AWTException e1) { }
}
}
/**
* Méthode principale
* @param arguments
*/
public static void main (String[] arguments) {
new MainFrame().setVisible(true);
}
}