gpt4 book ai didi

java - 从任务栏隐藏窗口

转载 作者:搜寻专家 更新时间:2023-11-01 03:49:22 25 4
gpt4 key购买 nike

我正在尝试开发我自己的用于在桌面上放置笔记的应用程序(类似于 Windows 操作系统下的便笺)。一切都很好,但我仍然面临一个问题:因为我希望应用程序尽可能“最小化”,所以我希望它不要出现在任务栏中,以免打扰用户。最终,我希望它出现在系统托盘中,但目前这不是重点。为了使应用程序跨平台,我正在用 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 下的等效项)中看到窗口(每个窗口对应一个注释)。

我错过了什么吗?

编辑

我张贴一张图片来展示我的意思,以及我不希望看到的内容:

screenshot

最佳答案

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

关于java - 从任务栏隐藏窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32703918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com