2011-09-12 62 views
2

我在我的applet中創建一個JWindow以顯示更新過程,並將所有者設置爲applet父級。我的問題是JWindow在瀏覽器的所有選項卡中都可見,而不僅僅是包含我的小程序的那個。是否有可能添加一個Listener來知道我的applet何時可見? (然後隱藏JWindow,當它不是)當applet不可見時隱藏JWindow?

+1

剛剛的問題,確保我們有JApplet的Applet的不是,是不是 – mKorbel

回答

1

Applets在顯示時似乎會添加到系統框架中,因此您可以使用WindowListener。我添加以下代碼在JApplet的的init()方法:

Window window = SwingUtilities.windowForComponent(this); 
window.addWindowListener(new WindowAdapter() 
{ 
    @Override 
    public void windowActivated(WindowEvent e) 
    { 
     displayWindow.setVisible(true); 
    } 

    @Override 
    public void windowDeactivated(WindowEvent e) 
    { 
     displayWindow.setVisible(false); 
    } 
}); 
+0

謝謝!它的工作幾乎完美。從另一個選項卡切換回來後,我必須點擊該小程序才能激活它... –

+0

因此,您的原始問題已解決,您應該接受答案。在上面的例子中,'window'指的是包含applet的窗口。也許你可以在windowActivated方法中請求關注窗口。 – camickr

+0

並創建一個新的「show jWindow當applet可見」? ;)當windowActived被調用時沒有意義的請求焦點,因爲問題是直到applet獲得焦點才調用它。 –

0

我不玩很多小程序,但我認爲那是什麼start()stop()方法。您可以在start()中使窗口可見,並將窗口隱藏在stop()中。

+0

我的理解正確的JWindow仍然onFront(),甚至他將(例如FirefoxMozilla)切換到另一個瀏覽器的Tab – mKorbel

+0

我剛試過使用啓動/停止功能。當我在標籤之間切換時,他們不會被叫... –

+0

@mKorbel:正確! –

相關問題