在任务栏图标中运行应用程序不在任务栏中

问题描述

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

我在Hide_On_Close操作中使用我的JFrame

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

解决方法

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

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,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);
    }

}