【发布时间】: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 上应该是这样,但那是因为你需要问为了“特别许可”不要出现在码头上......在这里工作,可能不会,试一试