2011-07-08 74 views
2

我有一個無模式的對話框正在生成提示用戶打開一個新窗口。可以通過兩種方式打開該框,可以直接從我正在寫入的框架的文件菜單中打開,也可以通過我的面板插入的框架間接打開。JDialog框沒有獲得重點

當我通過文件菜單直接撥打電話時,對話框的焦點與我想要的完全一致。但是,當我有框架間接打開對話框,它沒有像它應該的焦點。

打開對話框的兩種方法似乎沒有區別,在這兩種情況下都會調用加載函數,直到5次方法調用後纔打開對話框。在這兩種情況下,生成對話框的框架都是在框生成時實現的。我已經嘗試調用requestFocus後使對話框可見,但它似乎沒有做任何事情。

任何建議爲什麼對話框沒有焦點,或者我怎麼能把焦點作爲一個單獨的窗口與通常有焦點的窗口分開?

+0

使用更好看'requestFocus()方法' –

+0

他已經嘗試過了,它會出現。我認爲還有'grabFocus()'函數可以嘗試? – aardvarkk

+1

你能提供一些代碼嗎? – mre

回答

2

創建對話框時,嘗試將主GUI設置爲對話框的父對象。

在第一種情況下,當您從菜單中單擊時,它會自動將主GUI設置爲對話框的父級,但不會在第二種情況下進行設置。

因此,確保在創建對話框時,始終將父GUI /窗口設置爲父窗口。

它應該有助於大多數時間。

+0

這是個問題。我在設置頂層窗口時所做的調用在間接打開對話框時返回null。我真的應該知道,我的GUI技能不如我看來的其他Java技能那麼好:) – drew