2009-02-22 77 views
1

有一個擴展JDialog的類。它完全在EDT上初始化(以防萬一)。 現在,爲什麼JDialog會在setLocationRelativeTo()上「跳」?

public PropsDialog (JFrame parentFrame) 
{ 
    super(parentFrame); 
    // boring 
    pack(); 
    setLocationRelativeTo(getParent()); 
    setVisible(true); 
} 

結果在對話框出現在最左邊的角落裏,然後跳轉到它的目標位置。 我做錯了嗎?

+0

會發生什麼事,當你調用setLocationRelativeTo後包()()? – 2009-02-22 11:36:20

+0

從相同的角落跳轉,最終沒有正確對準父框架(這是正確的)。看起來像一個錯誤,因爲我只在內置的LaF上獲得這種行爲。 Synth按預期工作。 – yanchenko 2009-02-22 12:44:38

回答

1

您能否提供一個工作示例和更多信息?例如,你在什麼操作系統上測試? Swing在某些方面有些差異,例如沒有家長的JDialogs在gnome面板中獲取條目,但不在windows任務欄中獲得條目,以及類似的東西。

其次,我猜想,在你調用setLocationRelativeTo之前,你的JDialog是可見的,也許通過在你註釋掉的「無聊」部分內部。我建議,你打一個快速

System.out.println(isVisible()); 

到你的代碼,只是setLocationRelativeTo之前,以防萬一......

相關問題