2010-08-10 64 views
1

我在linux上搜索jdialog,但它仍然出現在我的任務欄中。 這是code?怎麼了?java 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); 
     } 
    } 
} 
+0

你能否詳細說明你的問題,或許還有一個屏幕截圖?你的意思是什麼? – 2010-08-10 13:08:16

回答

0

我發現的唯一解決方案是從擺動界面切換到GTK界面,要做到這一點我用java-gnome。唯一的問題是你必須將swing類的所有組件改爲相應的gtk類。

0

嘗試setLocation(10, 10);

+0

這樣你只能說窗口的座標是10-10而不是0-0。 我試過了,仍然無法工作。它在Windows上工作,而在Linux上則不支持。我相信這是由於Java jre的不同實現。我認爲這個問題是無法解決的,除非是對jre類的低層次干預。 – Syco 2010-08-10 13:26:52

0

您需要使用的JWindow,如果你不希望它出現在任務欄中更換setLocationByPlatform(true);
參見:how-do-i-prevent-jdialog-from-showing-in-gnome-panellinux

+0

JWindow始終保持最佳狀態,並且內部的文本對話框和按鈕存在很多問題。這對啓動屏幕很有用,但我不相信這對標準應用程序很有用。 – Syco 2010-08-10 13:59:29

1

由於這似乎仍然是在Linux環境中的問題,我想與大家分享我對這個話題的解決方案:

我只是不得不與父母的框架/窗口,如「新的JDialog創建的JDialog(新的JFrame());」並將JDialog設置爲可見後,我稱之爲「jframe.revalidate();」。而已。看起來像Java有與DISPLAYMANAGER通信正常而初始化所有JDialog一個問題..

對我的作品與Java 1.8.0.45,Linux Mint的17.1,肉桂2.4.8

0

已經與這一個了一段時間掙扎現在。最後爲我工作:

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

另外,你可以嘗試設置類型爲實用程序。

Lubuntu 15.04(LXDE)運行Java 1.8.0_25