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 環境では依然として問題のように思われるため、このトピックの解決策を共有したいと思います。

「new JDialog(new JFrame());」のような親フレーム/ウィンドウで JDialog を作成するだけでした。JDialog を Visible に設定した後、「jframe.revalidate();」を呼び出します。それでおしまい。JDialog の初期化中に、Java が 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

私が見つけた唯一の解決策は、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 に答える
0

タスクバーに表示したくない場合は、JWindow を使用する必要があります。
参照: how-do-i-prevent-jdialog-from-showing-in-gnome-panellinux

于 2010-08-10T13:52:13.587 に答える