Bagaimana mengimplementasikan fungsi system tray di Java.
Contoh diagram
Diagram struktur paket proyek
Tangkapan layar operasi sistem
Menerapkan deskripsi logika inti, menyembunyikan ke baki pada dasarnya berarti menyembunyikan formulir, yaitu setVisible (salah), dan menampilkan formulir berarti setVisible (benar).
Kode proyeknya adalah sebagai berikut:
impor java.awt.AWTException;
impor java.awt.MenuItem;
impor java.awt.PopupMenu;
impor java.awt.SystemTray;
impor java.awt.TrayIcon;
impor java.awt.event.ActionEvent;
impor java.awt.event.ActionListener;
impor java.net.URL;
impor javax.swing.ImageIcon;
impor javax.swing.JFrame;
impor javax.swing.JMenu;
impor javax.swing.JMenuBar;
impor javax.swing.JMenuItem;
MainFrame kelas publik memperluas implementasi JFrame ActionListener{
serialVersionUID panjang akhir statis pribadi = -7078030311369039390L;
menu JMenu pribadi;
JMenuBar pribadi jmenuBar;
private String [] jmItemName = {"Tempatkan di baki","Keluar sistem"};
Bingkai Utama publik(){
super("buku telepon");
init();
ini.setSize(500,400);
ini.setJMenuBar(jmenuBar);
this.setLocationRelativeTo(null);
systemTray(); //baki sistem
}
/**
* Antarmuka inisialisasi
*/
kekosongan publik init(){
menu = new JMenu("Formulir Sistem");
for(int i=0; i<jmItemName.panjang; i++){
JMenuItem menuItem = JMenuItem baru(jmItemName[i]);
menuItem.addActionListener(ini);
menu.tambahkan(menuItem);
}
this.jmenuBar = JMenuBar baru();
this.jmenuBar.tambahkan(menu);
}
@Mengesampingkan
public void actionPerformed(ActionEvent e) {
Tindakan string = e.getActionCommand();
if("Letakkan pada baki".sama dengan(tindakan)){
this.setVisible(salah);
}
if("Keluar sistem".sama dengan(tindakan)){
Sistem.keluar(0);
}
}
/**Pemrosesan ikon baki sistem.*/
kekosongan pribadi systemTray(){
if(SystemTray.isSupported()){ //Tentukan apakah sistem mendukung fungsi baki.
Sumber daya URL = this.getClass().getResource("systray.jpg"); //Dapatkan jalur gambar
Ikon ImageIcon = ImageIcon baru(sumber daya); //Buat objek gambar
PopupMenu popupMenu = new PopupMenu(); //Membuat objek menu popup
MenuItem itemExit = new MenuItem("Keluar dari sistem"); //Buat item keluar di menu pop-up
MenuItem itemShow = new MenuItem("Tampilan formulir"); //Membuat item tampilan formulir utama di menu pop-up.
itemExit.addActionListener(new ActionListener() {//Tambahkan event pendengar ke gambar keluar
@Mengesampingkan
public void actionPerformed(ActionEvent e) {
Sistem.keluar(0);
}
});
itemShow.addActionListener(new ActionListener() {//Tambahkan event pendengar untuk meminimalkan formulir.
@Mengesampingkan
public void actionPerformed(ActionEvent e) {
setVisible(benar);
}
});
popupMenu.add(itemKeluar);
popupMenu.add(itemShow);
TrayIcon trayIcon = new TrayIcon(icon.getImage(),"Sistem Buku Telepon",popupMenu);
SystemTray sysTray = SystemTray.getSystemTray();
mencoba {
sysTray.add(trayIcon);
} tangkapan (AWTException e1) {}
}
}
/**
* Metode utama
* @param argumen
*/
public static void main(String[] args) {
MainFrame baru().setVisible(benar);
}
}