📄 mainframe.java
字号:
package notifyicon;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MainFrame extends JFrame {
JPanel contentPane;
BorderLayout borderLayout1 = new BorderLayout();
ImageIcon ico=null;
ImageIcon ico2=null;
public MainFrame() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
ico=new ImageIcon(
notifyicon.NotifyDemo.class.getResource(
"imgs/1.png"));//创建图标对象
ico2=new ImageIcon(
notifyicon.NotifyDemo.class.getResource(
"imgs/2.png"));//创建图标对象
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(borderLayout1);
setSize(new Dimension(400, 300));
setTitle("Notify");
this.addWindowListener(new MainFrame_this_windowAdapter(this));//添加window监听器
}
SystemTray tray;//定义系统托盘
TrayIcon trayIco;//定义系统托盘图标
PopupMenu mnuPop;//定义弹出式菜单
MenuItem mnuOpen;//定义打开菜单项
MenuItem mnuMsg;//定义消息菜单项
MenuItem mnuBlink;//定义闪烁菜单项
public void this_windowIconified(WindowEvent e) {
if(!SystemTray.isSupported())//判断当前系统是否支持托盘
return;
if(tray==null)
{
tray = SystemTray.getSystemTray();//获取系统托盘
mnuPop = new PopupMenu();//创建菜单和菜单项
mnuOpen = new MenuItem("Open");
mnuMsg=new MenuItem("Message");
mnuBlink=new MenuItem("Blink");
mnuOpen.addActionListener(new ActionListener(){//添加打开菜单监听
public void actionPerformed(ActionEvent ae)
{
openWindow();
}
});
mnuMsg.addActionListener(new ActionListener(){//添加消息菜单监听
public void actionPerformed(ActionEvent ae)
{
displayMsg();
}
});
mnuBlink.addActionListener(new ActionListener(){//添加闪烁菜单监听
public void actionPerformed(ActionEvent ae)
{
blinkImage();
}
});
mnuPop.add(mnuOpen);
mnuPop.add(mnuMsg);
mnuPop.add(mnuBlink);
trayIco = new TrayIcon(ico.getImage(), "Tray Demo", mnuPop);//创建系统托盘图标
}
try {
tray.add(trayIco);//将系统托盘图标加入系统托盘
} catch (Exception ex) {
}
this.setVisible(false);//隐藏窗体
}
private void openWindow()
{
this.setVisible(true); //恢复窗体可见性
this.setExtendedState(JFrame.NORMAL); //显示窗体
}
private void displayMsg()
{
trayIco.displayMessage("Title","Welcome",TrayIcon.MessageType.INFO);//显示托盘消息
}
private void blinkImage()
{
Thread th=new BlinkThread(); //创建闪烁线程
th.start();
}
public void this_windowDeiconified(WindowEvent windowEvent) {
try {
tray.remove(trayIco);//移除托盘图标
} catch (Exception ex) {
}
}
class BlinkThread extends Thread
{
public void run(){
int i = 0;
while (i < 10) {
try {
trayIco.setImage(ico2.getImage());
Thread.sleep(100);
trayIco.setImage(ico.getImage());
Thread.sleep(100);
} catch (Exception ex) {
}
i++;
}
}
}
}
class MainFrame_this_windowAdapter extends WindowAdapter {
private MainFrame adaptee;
MainFrame_this_windowAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void windowIconified(WindowEvent e) {
adaptee.this_windowIconified(e);
}
public void windowDeiconified(WindowEvent windowEvent) {
adaptee.this_windowDeiconified(windowEvent);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -