加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 从任务栏隐藏窗口

发布时间:2020-12-15 02:09:55 所属栏目:Java 来源:网络整理
导读:我正在尝试开发自己的应用程序,用于在桌面上放置注释(类似于 Windows操作系统下的Sticky Notes).一切都运行良好,但我仍然面临一个问题:因为我希望应用程序尽可能“最
我正在尝试开发自己的应用程序,用于在桌面上放置注释(类似于 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下它的等价物).

我错过了什么吗?

编辑

我张贴图片以显示我的意思,以及我不想看到的内容:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读