首页 > 解决方案 > 在托盘图标中运行应用程序(不在任务栏中)

问题描述

我想在托盘中运行我的应用程序,但我没有任务栏中的图标。

我在 Hide_On_Close 操作中使用我的 JFrame

我使用托盘图标进行通知,但是如何在我的 GUI 应用程序运行时摆脱任务栏上的图标。

标签: javaswinguser-interfacejframesystem-tray

解决方案


这对你有用吗?您可能需要添加您正在处理的操作系统。

import javax.swing.*;
import java.awt.*;
import java.awt.image.*;
public class SysTrayFrame{

    public static void main(String[] args) throws Exception{
        JFrame frame = new JFrame("systray test");
        frame.setUndecorated(true);
        BufferedImage img =  new BufferedImage(64, 64, BufferedImage.TYPE_INT_ARGB);
        Graphics g = img.getGraphics();
        g.setColor(Color.RED);
        g.fillOval(0, 0, 64, 64);
        g.dispose();
        JButton b = new JButton("click to hide");
        frame.add(b);
        b.addActionListener(evt-> frame.setVisible(false) );
        frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
        TrayIcon icon = new TrayIcon(img);
        icon.addActionListener( evt->{
            System.out.println("doing it");
            frame.setVisible(true);
        });
        SystemTray.getSystemTray().add(icon);
    }

}

推荐阅读