[英]Changing background image with Button press Javafx
我想更改場景中的背景圖像。
這來自 css 文件。
.SettingsGrid {
-fx-background-image: url('Background.quiz.jpg');
/*-fx-background: #ffffff;*/
-fx-background-size: cover;
}
我試過用這個:
SettingsGrid.setStyle("-fx-background-image: url('Background2.quiz.jpg')");
但是背景並沒有變成新的圖像,而是變白了。
只需更改背景顏色即可。
嘗試指定相對於類路徑根的完全限定路徑。
解析路徑根據您是從樣式表還是內聯樣式訪問 CSS URL 資源而不同。
閱讀CSS 參考中的 uri 文檔。 它寫得很好,有清晰的例子可以幫助你理解你的問題。 引用 CSS URL 分辨率的文檔:
- 如果地址沒有
scheme:
組件,則該地址僅被視為path
組件。- 前導
/
字符表示該path
是相對於類路徑的根目錄的。- 如果樣式出現在樣式表中並且沒有前導
/
字符,則路徑是相對於樣式表的基本 URI。- 如果樣式以內聯樣式出現,則路徑相對於類路徑的根目錄(無論是否有前導
/
)。
例子
-fx-background-image: url('Background.quiz.jpg');
當寫在 CSS 樣式表中時,這將在類路徑中查找與樣式表相鄰的圖像位置。
當以內聯樣式編寫時,它將在類路徑的根目錄中查找圖像位置。
相反,對於內聯樣式 URL,如果您指定圖像相對於類路徑根目錄的完整路徑,則將找到該圖像。
如果您將 package 您的應用程序設置為 jar,然后在打包的 jar 上運行jar tvf
,並且您的圖像位於例如位置image/Background2.quiz.jpg
中,則 URL 將用於內聯樣式:
settingsGrid.setStyle("-fx-background-image: url('image/Background2.quiz.jpg')");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.