2012-05-24 28 views
1

我有一個不平凡的Java小程序。它有一個菜單,並通過該菜單applet顯示一個對話框,延伸到JDialog。對話框使用setVisible(true)顯示。當用戶使用該對話框完成工作時,使用this.dispose()關閉對話框(在按下「完成」按鈕之後)。Java小程序/對話框奇怪的行爲

現在,有一個奇怪的問題 - 小程序在Firefox正常工作,即使在IE瀏覽器,但在Chrome中,當小程序顯示了一些其他的(對話)窗口,該窗口顯示背後的小程序。我必須點擊對話框應該顯示的地方(把它放在前面)。如果我再次單擊它(顯示時),它會再次消失(轉到背景)。按鈕點擊正常工作,但每當我點擊彈出窗口本身(即使是標題欄),它都會改變它的「可見」狀態。

請問,任何想法有什麼不對?如何解決該錯誤?

回答

4
// the applet will typically appear inside a Window, get a reference to it using: 
Window parent = Window.getWindows()[0]; 
// use the window as the parent of a modal dialog. 
JDialog dialog = new JDialog(parent); 
dialog.setModal(true); 
// ... 
dialog.setVisible(true); 
// won't be called until the applet is dismissed 
someJComponent.requestFocusInWindow(); 

嵌入到網頁中的小程序將始終受到模態和焦點問題的影響。爲了獲得更好的用戶體驗,請使用Java Web Start啓動自由浮動的小程序,或者更好的是,使用JWS啓動一個框架。

+0

謝謝你,但問題仍然存在......下一次使用「X」關閉任何小程序製作的JDialog後,我打開任何窗口,它與焦點混在一起。任何解決方案,除了從小程序切換到smthg其他? – guest86

+0

查看我在編輯中添加的最後一行代碼行。爲什麼如此熱衷於嵌入式小程序? –

+0

不,添加的代碼不會:\我需要使用小程序,因爲我維護一些舊的和非常複雜的代碼。從小應用程序切換將需要重寫大部分代碼。 – guest86