java jdialog任务栏按钮

java jdialog任务栏按钮,java,linux,jframe,taskbar,jdialog,Java,Linux,Jframe,Taskbar,Jdialog,我正在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() {

我正在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);
        }
    }
}

尝试替换
setLocationByPlatform(true)带有
设置位置(10,10)

尝试替换
setLocationByPlatform(true)带有
设置位置(10,10)

如果不想让JWindow出现在任务栏上,则需要使用它。

另请参见:

如果您不希望JWindow出现在任务栏中,则需要使用它。

另请参见:

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

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

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

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


适用于我的Java 1.8.0.45、Linux Mint 17.1、肉桂2.4.8,因为在Linux环境中这似乎仍然是一个问题,所以我想分享我的解决方案:

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


适用于我的Java 1.8.0.45、LinuxMint17.1、肉桂2.4.8。我一直在努力解决这个问题。最终对我起作用的是:

JDialog frame = new JDialog();
frame.setType(javax.swing.JFrame.Type.POPUP);
或者,您可以尝试将类型设置为实用程序


运行Java 1.8.0_25的Lubuntu 15.04(LXDE)已经为这个问题挣扎了一段时间。最终对我起作用的是:

JDialog frame = new JDialog();
frame.setType(javax.swing.JFrame.Type.POPUP);
或者,您可以尝试将类型设置为实用程序


运行Java 1.8.0_25的Lubuntu 15.04(LXDE)

您能详细说明您的问题吗,也许可以用一个屏幕截图?你说的旅行是什么意思?你能详细阐述一下你的问题吗,也许用一个屏幕截图?你说的移动是什么意思?这样你只需要把窗口定位在坐标10-10,而不是0-0。我试过了,但还是不起作用。它在windows上工作,在Linux上不工作。我认为这是由于JavaJRE的不同实现。我认为这个问题是无法解决的,除非在jre类中进行低级干预。这样,您只需将窗口定位在坐标10-10,而不是0-0。我试过了,但还是不起作用。它在windows上工作,在Linux上不工作。我认为这是由于JavaJRE的不同实现。我认为这个问题是无法解决的,除非对jre classes.JWindow进行低级别的干预,否则jre classes.JWindow始终处于顶部,并且内部的文本对话框和按钮存在很多问题。它对启动屏幕很好,但我不认为它对标准应用程序有用。JWindow始终处于顶部,并且内部的文本对话框和按钮存在很多问题。它对启动屏幕很好,但我不相信它对标准应用程序有用。