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


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)托盤(pán)
// 添加關(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)托盤(pán)
*/
private void systemTray() {
if (SystemTray.isSupported()) { // 判斷系統(tǒng)是否支持托盤(pán)功能.
// 創(chuàng)建托盤(pán)右擊彈出菜單
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)建托盤(pán)圖標(biāo)
ImageIcon icon = new ImageIcon("img/icon.png"); // 創(chuàng)建圖片對(duì)象
TrayIcon trayIcon = new TrayIcon(icon.getImage(), "測(cè)試系統(tǒng)托盤(pán)",
popupMenu);
trayIcon.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
TestTray.this.setVisible(true);
}
});
//把托盤(pán)圖標(biāo)添加到系統(tǒng)托盤(pán)
//這個(gè)可以點(diǎn)擊關(guān)閉之后再放到托盤(pán)里面,在此是打開(kāi)程序直接顯示托盤(pán)圖標(biāo)了
try {
SystemTray.getSystemTray().add(trayIcon);
} catch (AWTException e1) {
e1.printStackTrace();
}
}
}
public static void main(String[] args) {
new TestTray();
}
}
相關(guān)文章
Spring Boot啟動(dòng)過(guò)程完全解析(一)
這篇文章主要介紹了Spring Boot啟動(dòng)過(guò)程完全解析(一),需要的朋友可以參考下2017-04-04
java基礎(chǔ)詳解之?dāng)?shù)據(jù)類(lèi)型知識(shí)點(diǎn)總結(jié)
這篇文章主要介紹了java基礎(chǔ)詳解之?dāng)?shù)據(jù)類(lèi)型知識(shí)點(diǎn)總結(jié),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有很大的幫助,需要的朋友可以參考下2021-04-04
在JSP頁(yè)面內(nèi)編寫(xiě)java代碼方法總結(jié)
在本篇文章里小編給大家分享了關(guān)于在JSP頁(yè)面內(nèi)編寫(xiě)java代碼方法和步驟,有需要的朋友們學(xué)習(xí)下。2019-01-01
Java?詳細(xì)講解線(xiàn)程的狀態(tài)及部分常用方法
在Java程序中,一個(gè)線(xiàn)程對(duì)象只能調(diào)用一次start()方法啟動(dòng)新線(xiàn)程,并在新線(xiàn)程中執(zhí)行run()方法。一旦run()方法執(zhí)行完畢,線(xiàn)程就結(jié)束了,本篇來(lái)講解Java線(xiàn)程的狀態(tài)以及部分常用方法2022-04-04
Java代碼注釋規(guī)范(動(dòng)力節(jié)點(diǎn)整理)
代碼注釋是架起程序設(shè)計(jì)者與程序閱讀者之間的通信橋梁,最大限度的提高團(tuán)隊(duì)開(kāi)發(fā)合作效率。也是程序代碼可維護(hù)性的重要環(huán)節(jié)之一。下面通過(guò)本文說(shuō)一下我們?cè)谌粘i_(kāi)發(fā)中使用的代碼注釋規(guī)范2017-03-03
使用eclipse + maven一步步搭建SSM框架教程詳解
SSM(Spring+SpringMVC+MyBatis)框架集由Spring、SpringMVC、MyBatis三個(gè)開(kāi)源框架整合而成,常作為數(shù)據(jù)源較簡(jiǎn)單的web項(xiàng)目的框架.這篇文章主要介紹了eclipse + maven搭建SSM框架 ,需要的朋友可以參考下2017-11-11

