2017-10-04 115 views
1

我對JavaFX很新穎,我試圖通過CSS更改我的應用程序方面。第一次它工作正常,當我切換到另一個場景CSS'類不適用。 由於我的項目有10個場景,我傾向於使用單個CSS文件通過使用以下語句將我的樣式應用於所有場景: StyleManager.getInstance().addUserAgentStylesheet(this.getClass().getResource("/style.css").toExternalForm()); into start()方法。 如何在全局範圍內將CSS文件應用於所有場景?JavaFX - 爲整個應用程序設置默認CSS樣式表

回答

1

您可以通過以下兩行做到這一點:

Application.setUserAgentStylesheet(Application.STYLESHEET_MODENA); 
StyleManager.getInstance().addUserAgentStylesheet(getClass().getResource("/style.css").toString()); 

第一行設置默認的樣式表摩德納(在這裏你甚至可以選擇設置JavaFX2裏海爲默認樣式表)使用Application#setUserAgentStylesheet,而第二行會將您的樣式表添加到用戶代理樣式表列表中。

這不是最好的解決方案,因爲StlyeManager是一個私有API(並將保留在JDK9中,因爲它現在)。


其他的解決辦法是子類Scene,在繼承缺省情況下可以增加你的樣式表,然後而非實例Scene,你可以創建你的子類的實例。

相關問題