кнопка панели задач Java jdialog - PullRequest
       21

кнопка панели задач Java jdialog

1 голос
/ 10 августа 2010

Я пишу jdialog на Linux, но он все еще появляется на моей панели задачэто код?что не так?

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

Ответы [ 5 ]

1 голос
/ 17 апреля 2015

Поскольку это все еще кажется проблемой в средах Linux, я хотел бы поделиться своим решением для этой темы:

Мне просто нужно было создать JDialog с родительским Frame / Window, например "new JDialog (новый JFrame ()); "и после установки JDialog на видимость я вызываю "jframe.revalidate ();".Это оно.Похоже, у Java возникла проблема с правильным соединением с DisplayManager при инициализации JDialog.

У меня работает с Java 1.8.0.45, Linux Mint 17.1, Cinnamon 2.4.8

0 голосов
/ 08 июня 2015

Давно боролся с этим. Что в итоге сработало для меня:

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

В качестве альтернативы вы можете попробовать установить тип на UTILITY.

Lubuntu 15.04 (LXDE) под управлением Java 1.8.0_25

0 голосов
/ 10 августа 2010

Вам нужно использовать JWindow, если вы не хотите, чтобы оно отображалось на панели задач.
См. Также: how-do-i-предотвращение-jdialog-from-показывая-in-gnome-panellinux

0 голосов
/ 23 августа 2010

Единственное решение, которое я нашел, это переключиться с интерфейсов Swing на интерфейсы GTK, для этого я использовал java-gnome . Единственная проблема заключается в том, что вы должны изменить все компоненты классов Swing на соответствующие классы GTK.

0 голосов
/ 10 августа 2010

попробуйте заменить setLocationByPlatform(true); на setLocation(10, 10);

...