-1

我正在使用 Java Swing 应用程序。我已将JFrame用于通知窗口。当我的应用程序以随机​​间隔运行时,一些通知将显示在屏幕的右上方,但是当当时显示通知窗口时,我看到该通知详细信息,其标题在我的任务栏上命名。我想阻止在任务栏上显示此信息。任何人帮助我。我也尝试过使用JWindow,但存在同样的问题。我不想任务栏上用作System Try

在此处输入图像描述

4

2 回答 2

1

您应该使用JDialog代替JFrameor JWindow。以下示例可能对您有所帮助:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JDialog;
import javax.swing.Timer;

public class Main {
    public static void main(String[] args) {
        final JDialog dlg = new JDialog();
        dlg.setBounds(100, 100, 200, 100);
        dlg.setUndecorated(true);
        dlg.setVisible(!dlg.isVisible());

        Timer showTimer = new Timer(3000, new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                dlg.setVisible(!dlg.isVisible());
            }
        });
        showTimer.start();
    }
}

[更新] 实际上,JDialog 是为另一个 JFrame 或 JWindow 提供一个框架作为子框架,因此默认情况下它不应在任务栏或系统托盘中创建任何信息。

上面的代码在屏幕上提供了以下输出,并且任务栏上没有图标化信息或系统托盘中的任何想法,如您所见:

在此处输入图像描述

祝你好运。

于 2015-08-06T07:49:11.237 回答
1

尝试 setType(Type.UTILITY);

缺点是decorated JFrames它只提供close按钮。效果更好undecorated JFrames

于 2015-08-06T14:06:55.613 回答