我想在不使用方法本身的情況下實現Stage.showAndWait()
的功能。重新實現JavaFX showAndWait
我有一個應用程序,我需要一種方式顯示在同一階段的東西,並阻止線程顯示的內容,直到按下按鈕。
顯示內容的線程自然需要是JavaFX應用程序線程 - 只要它被阻塞,當然不會處理這些按鈕。
Stage.showAndWait
描述了它的內部運作爲「當前事件的這種方法暫時塊的處理,並啓動其嵌套事件循環處理其它事件。」我看到,該方法稱爲「Toolkit.getToolkit()。enterNestedEventLoop(這個)「,這是相當具體的實現。還有其他選擇嗎?像這樣的功能暴露在API的任何地方?
編輯:
因爲我的問題是誤導性的,我嘗試從我目前的角度來看更重要的是改換:
是否有Toolkit.getToolkit()的公共API enterNestedEventLoop()和工具包.getToolkit()。exitNestedEventLoop()?
你的問題不是很清楚(至少不是我)。像幾乎所有的UI工具包一樣,JavaFX是單線程的:所以「顯示內容的線程」必須與處理按鈕的線程相同。我不明白爲什麼你不能只顯示內容,然後在按鈕的事件處理程序中更新它或刪除它(無論你需要做什麼)。 – 2015-01-26 23:36:43
不,沒有公共API來解決這個問題,您需要使用私有API Toolkit.getToolkit() – tomsontom 2015-01-27 13:58:16