java - 在托盘图标中运行应用程序(不在任务栏中)
问题描述
我想在托盘中运行我的应用程序,但我没有任务栏中的图标。
我在 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, 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);
}
}
推荐阅读
- python - 无法使用 pyodbc 连接 MSSQL
- php - 计算 phpunit 测试类的代码覆盖率
- javascript - 为什么 HTTP get 请求执行后 HTML 不更新?
- matplotlib - 为什么 plt.show() 会改变 plt.save()?
- grep - 过滤复杂文件中的特定模式
- mysql - 如何在 JSON 对象中添加子查询以插入到表中?
- environment-variables - 为什么从我的操作系统中删除环境变量?
- sql - T-SQL 使用动态 sql 在存储过程中创建视图
- python - Pyserial AT 命令问题
- c++ - std::discrete_distribution() 是否允许零权重?