从任务栏隐藏JFrame或JWindow

时间:2015-08-06 07:12:10

标签: java swing jframe taskbar jwindow

我正在使用Java Swing Application 。我在通知窗口中使用了 JFrame 。当我的应用程序以随机​​间隔运行时,屏幕右上方会显示一些通知,但是当我显示通知窗口时,我看到任务栏上以标题命名的通知详细信息< / strong>即可。我想阻止在任务栏上显示此信息。任何人都帮助我。我也试过 JWindow ,但同样的问题出现了。我想在任务栏上系统尝试

enter image description here

2 个答案:

答案 0 :(得分:1)

尝试 setType(Type.UTILITY);

缺点是decorated JFrames它只提供close按钮。 适用于undecorated JFrames

答案 1 :(得分:0)

您应该使用JDialog代替JFrameJWindow。以下示例可以帮助您:

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

<强> [UPDATE] 实际上,JDialog用于为另一个JFrame或JWindow提供一个子帧,因此默认情况下不应在任务栏或系统托盘中创建任何信息。

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

enter image description here

祝你好运。