1

我正在 linux 上放置一个 jdialog,但它仍然出现在我的任务栏中。这是代码?怎么了?

import javax.swing.JDialog;

public class Main {
    public static void main(String [] args) {
        new mydialog();
    }

    private static class mydialog extends JDialog {
        public mydialog() {
            super();
            setSize(200,200);
            setLocationByPlatform(true);
            setAlwaysOnTop(false);
            setUndecorated(true);
            setVisible(true);
        }
    }
}
4

5 回答 5

1

由于这在 Linux 环境中似乎仍然是一个问题,因此我想分享我针对此主题的解决方案:

我只需要创建带有父框架/窗口的 JDialog,例如“new JDialog(new JFrame());” 在将 JDialog 设置为可见后,我调用“jframe.revalidate();”。就是这样。看起来Java在初始化JDialog时与DisplayManager正确通信有问题。

适用于我的 Java 1.8.0.45、Linux Mint 17.1、Cinnamon 2.4.8

于 2015-04-17T14:09:05.440 回答
0

尝试替换setLocationByPlatform(true);setLocation(10, 10);

于 2010-08-10T13:09:23.057 回答
0

如果您不希望它出现在任务栏中,则需要使用 JWindow。
另请参阅:how-do-i-prevent-jdialog-from-showing-in-gnome-panellinux

于 2010-08-10T13:52:13.587 回答
0

我发现的唯一解决方案是从 Swing 接口切换到 gtk 接口,为此我使用了java-gnome。唯一的问题是您必须将 swing 类的所有组件更改为相应的 gtk 类。

于 2010-08-23T12:49:11.633 回答
0

一段时间以来一直在努力解决这个问题。最终对我有用的是:

JDialog frame = new JDialog();
frame.setType(javax.swing.JFrame.Type.POPUP);

或者,您可以尝试将类型设置为 UTILITY。

运行 Java 1.8.0_25 的 Lubuntu 15.04 (LXDE)

于 2015-06-08T19:41:56.513 回答