Java實(shí)現(xiàn)把窗體隱藏到系統(tǒng)托盤方法
系統(tǒng)托盤也就是桌面右下角的圖標(biāo)。。
此程序?qū)崿F(xiàn)的功能是點(diǎn)擊窗體關(guān)閉按鈕不退出程序,而是隱藏到系統(tǒng)托盤里面。
實(shí)質(zhì)上也只是把窗體不可見了。。。


import java.awt.AWTException;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
public class TestTray extends JFrame {
private static final long serialVersionUID = -7078030311369039390L;
public TestTray() {
this.setSize(500, 400);
this.setLocationRelativeTo(null);// 把窗體設(shè)置在屏幕中間
systemTray(); // 設(shè)置系統(tǒng)托盤
// 添加關(guān)閉按鈕事件,關(guān)閉時(shí)候?qū)嵸|(zhì)是把窗體隱藏
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
TestTray.this.setVisible(false);
}
});
this.setVisible(true);
}
/**
* 處理系統(tǒng)托盤
*/
private void systemTray() {
if (SystemTray.isSupported()) { // 判斷系統(tǒng)是否支持托盤功能.
// 創(chuàng)建托盤右擊彈出菜單
PopupMenu popupMenu = new PopupMenu();
//創(chuàng)建彈出菜單中的退出項(xiàng)
MenuItem itemExit = new MenuItem("退出系統(tǒng)");
itemExit.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
popupMenu.add(itemExit);
//創(chuàng)建托盤圖標(biāo)
ImageIcon icon = new ImageIcon("img/icon.png"); // 創(chuàng)建圖片對(duì)象
TrayIcon trayIcon = new TrayIcon(icon.getImage(), "測(cè)試系統(tǒng)托盤",
popupMenu);
trayIcon.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
TestTray.this.setVisible(true);
}
});
//把托盤圖標(biāo)添加到系統(tǒng)托盤
//這個(gè)可以點(diǎn)擊關(guān)閉之后再放到托盤里面,在此是打開程序直接顯示托盤圖標(biāo)了
try {
SystemTray.getSystemTray().add(trayIcon);
} catch (AWTException e1) {
e1.printStackTrace();
}
}
}
public static void main(String[] args) {
new TestTray();
}
}
相關(guān)文章
SpringBoot獲取當(dāng)前運(yùn)行環(huán)境三種方式小結(jié)
在使用SpringBoot過程中,我們只需要引入相關(guān)依賴,然后在main方法中調(diào)用SpringBootApplication.run(應(yīng)用程序啟動(dòng)類.class)方法即可,那么SpringBoot是如何獲取當(dāng)前運(yùn)行環(huán)境呢,接下來由小編給大家介紹一下SpringBoot獲取當(dāng)前運(yùn)行環(huán)境三種方式,需要的朋友可以參考下2024-01-01
Java集合Map常見問題_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)整理了Java集合Map常見問題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
jar的MANIFEST.MF配置Class-Path, java -classpath設(shè)置無效的解
這篇文章主要介紹了jar的MANIFEST.MF配置Class-Path, java -classpath設(shè)置無效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
SpringBoot使用CommandLineRunner接口完成資源初始化方式
這篇文章主要介紹了SpringBoot使用CommandLineRunner接口完成資源初始化方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
SpringBoot前后端分離項(xiàng)目之打包、部署到服務(wù)器詳細(xì)圖文流程
作為后臺(tái)開發(fā),項(xiàng)目打包部署是經(jīng)常性的操作,下面這篇文章主要給大家介紹了關(guān)于SpringBoot前后端分離項(xiàng)目之打包、部署到服務(wù)器的相關(guān)資料,文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12
Java?file類中renameTo方法操作實(shí)例
renameTo()方法是File類的一部分,renameTo()函數(shù)用于將文件的抽象路徑名重命名為給定的路徑名??,下面這篇文章主要給大家介紹了關(guān)于Java?file類中renameTo方法操作的相關(guān)資料,需要的朋友可以參考下2022-11-11

