2012-09-14 90 views
0

您好,我在JavaFX應用程序中遇到了一個小問題,當所有的瀏覽器窗口關閉時,終止java進程。我試圖處理Stage.setOnHiding或.setOnCloseRequest並終止所有正在運行的線程,並在處理程序體中執行Platform.exit,但沒有運氣。首先,在關閉瀏覽器時,不會調用任何處理程序setOnHiding和setOnCloseRequest。同時設置Platform.setImplicitExit(true)不會導致java進程在瀏覽器關閉時終止 - 這僅在有時纔有效。在Web瀏覽器關閉後,Sth阻止javafx進程被終止。我怎樣才能檢測到什麼?如何在瀏覽器退出時終止javafx應用程序

+0

您是否在應用程序中創建其他線程?如果是這樣,他們是如何創建的?您的應用程序退出方法是否被調用? – jewelsea

+0

jewelsea,確實有3個線程由我創建,但他們是deamons,所以我認爲他們不應該阻止應用程序退出。我調用Platform.exit()方法,但只有如果我單擊註銷按鈕,然後用戶從服務器中退出,然後它確定。 **當所有窗口關閉時,JavaFX應該退出,問題在於,當執行嵌入在瀏覽器中的應用程序時,上述內容似乎不適用,只有在javaFX應用程序作爲獨立運行而不是在瀏覽器中運行時,纔會調用setOnCloseRequest的處理程序。 **我認爲相同的aplies to setImplicitExit(true) – voytech

+0

原始問題的最後兩句是沒有意義的。 – jewelsea

回答

0

對我來說,瀏覽器關閉時,瀏覽器中託管的JavaFX應用程序總是會自動終止。

您應該執行Application.stop()來檢測應用程序關閉事件。

階段級別的方法setOnCloseRequest和setOnHiding不是檢測應用程序級別關閉事件的正確方法。

+0

好的,謝謝你,看來你給了我解決方案。我沒有實施停止方法。就這樣。 – voytech

相關問題