【问题标题】:Hide window from task bar从任务栏中隐藏窗口
【发布时间】:2015-12-18 15:59:50
【问题描述】:

我正在尝试开发自己的应用程序,用于在桌面上放置笔记(类似于 Windows 操作系统下的 Sticky Notes)。一切都运行良好,但我仍然面临一个问题:因为我希望应用程序尽可能“最小”,我希望它不会出现在任务栏中,这样它就不会打扰用户。最终,我希望它出现在系统托盘中,但目前,这不是重点。为了使应用程序跨平台,我正在用 Java 开发它,并且我读到为了不让它出现在任务栏中,可以使用 JDialog。现在我的课是

public class NoteWindow extends JDialog implements WindowListener, WindowFocusListener, KeyListener, ComponentListener,
        MouseMotionListener, MouseListener

在代码中我也放了

setType(Type.UTILITY);
setBounds(100, 100, 235, 235);
getContentPane().setLayout(null);
setUndecorated(true);

但它似乎不起作用:在 Linux Mint 17.2 下,我仍然在任务栏(或 Linux 下的等效窗口)中看到窗口(每个窗口对应一个注释)。

我错过了什么吗?

编辑

我发布一张图片来说明我的意思,以及我不想看到的内容:

【问题讨论】:

  • Windows操作系统下呢?
  • @capslock 我不知道,因为我的笔记本上只有 Linux Mint,而且目前我没有可以使用的 Windows 机器
  • 你试过用 JWindow 代替 JDialog 吗?
  • getContentPane().setLayout(null); Java GUI 必须在不同的操作系统、屏幕尺寸、屏幕分辨率等上使用不同语言环境中的不同 PLAF。因此,它们不利于像素完美布局。而是使用布局管理器,或 combinations of them 以及 white space 的布局填充和边框。
  • 我不知道,我不使用 Linux,但JWindow 通常不会在任务栏上显示项目...在 MacOS 上应该是这样,但那是因为你需要问为了“特别许可”不要出现在码头上......在这里工作,可能不会,试一试

标签: java swing


【解决方案1】:

JDialog 应附加到 JFrame 父级。那么该对话框在任务栏中将没有相应的按钮。所以,我建议创建一个JFrame 实例,但不要让它可见。在便笺示例中,每个便笺窗口都有相同的父窗口。

package com.thomaskuenneth;

import javax.swing.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class DialogDemo {

    public static void main(String[] args) {
        JFrame parent = new JFrame();
        JDialog d = new JDialog(parent, "Hello");
        d.setBounds(50, 50, 200, 200);
        d.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
        d.addWindowListener(new WindowAdapter() {

            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        d.setVisible(true);
    }
}

请注意,我没有使用setUndecorated(true); 来响应关闭窗口。如果您有其他方式来响应此类请求,例如通过单击对话框内的按钮,您当然可以使用setUndecorated(true);。

【讨论】:

    猜你喜欢
    • 2017-05-28
    • 1970-01-01
    • 2011-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-09
    • 2012-09-30
    相关资源
    最近更新 更多