第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

未找到將 CSS 導(dǎo)入 JavaFX 的源

未找到將 CSS 導(dǎo)入 JavaFX 的源

翻翻過去那場雪 2021-12-30 16:34:40
我正在處理一個(gè)項(xiàng)目,我想在其中使用帶有 JavaFX 的外部 CSS 文件來設(shè)置 VBox 和窗格等的樣式。我已經(jīng)使用下面的行嘗試將樣式表添加到相應(yīng)的場景中:scene.getStylesheets().add(getClass().getResource("/style.css").toExternalForm());這給了我空指針,我閱讀了一些關(guān)于這個(gè)問題的其他帖子,發(fā)現(xiàn)這通常是由于樣式表不在它試圖從中訪問的類路徑中。這是一個(gè)屏幕截圖,可以讓您看到情況并非如此:你會(huì)注意到有 Styles.css 和 style.css,我嘗試了不同的故障排除目的我還發(fā)現(xiàn)有人建議說,如果它在類路徑中,就應(yīng)該這樣訪問:scene.getStylesheets().add("style.css");但是這樣做給了我Nov 04, 2018 9:24:10 PM com.sun.javafx.css.StyleManager loadStylesheetUnPrivileged WARNING: Resource "Styles.css" not found.我愿意接受任何建議,我正在使用 maven 在 IntelliJ 中工作。
查看完整描述

2 回答

?
元芳怎么了

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超7個(gè)贊

Maven 約定使用標(biāo)準(zhǔn)目錄布局,除非另有配置,否則要求您遵循它。標(biāo)準(zhǔn)目錄布局所做的一件事是將 Java 源文件 ( .java) 與資源文件(所有不是.java)分開。它看起來像這樣:


|--projectDir/

|  |--src/

|  |  |--main/

|  |  |  |--java/

|  |  |  |--resources/

源文件進(jìn)去,src/main/java資源文件進(jìn)去src/main/resources。

構(gòu)建項(xiàng)目時(shí),Maven 將編譯源文件并將.class文件放入projectDir/target/classes. 它也將復(fù)制任何資源文件src/main/resourcestarget/classes為好。默認(rèn)情況下,任何非源文件都src/main/java將被忽略。您提到您已將styles.css文件放入其中src/main/java,因此在target/classes您運(yùn)行項(xiàng)目時(shí)它不在。

當(dāng)您執(zhí)行項(xiàng)目時(shí),目錄target/classes(以及任何依賴項(xiàng))都放在類路徑上。但是因?yàn)槟愕?code>styles.css文件沒有被復(fù)制到target/classes它里面,所以它不包含在類路徑中,NullPointerException當(dāng)你試圖引用它時(shí),你最終會(huì)得到s 。

解決方法是將styles.css文件移動(dòng)到src/main/resources目錄中??雌饋砟壳霸?code>src/main/java/rocks/zipcode/atm. 如果要將資源文件保留在同一個(gè)“包”中,請將其移動(dòng)到src/main/resources/rocks/zipcode/atm. 然后target/classes在重建項(xiàng)目時(shí)應(yīng)該將其復(fù)制到目錄中。

然后你可以通過幾種方式引用它。

第一種方法是使用getClass().getResource(...). 如果您傳遞絕對路徑(以 a 開頭/),它將從類路徑的根目錄查找資源。如果您不傳遞絕對路徑(不以 a 開頭/),它將查找相對于Class's 位置的資源(在這種情況下, theClass是 返回的那個(gè)getClass())。這意味著,由于您是從 inside 獲取資源rocks.zipcode.atm.CacheMachineApp,您可以執(zhí)行以下操作:

  • getClass().getResource("/rocks/zipcode/atm/styles.css"), 或者

  • getClass().getResource("styles.css")

另一種選擇是使用文檔中定義的行為getStylesheets()

獲取鏈接到樣式表的字符串 URL 的可觀察列表,以用于此場景的內(nèi)容。

URL 是 [scheme:][//authority][path] 形式的分層 URI。如果 URL 沒有 [scheme:] 組件,則該 URL 僅被視為 [path] 組件。[path] 的任何前導(dǎo)“/”字符都將被忽略,并且 [path] 被視為相對于應(yīng)用程序類路徑的根的路徑。

如您所見,當(dāng)沒有方案(例如file:,,https:等)時(shí),它將尋找相對于類路徑的資源。由于它始終相對于根,因此您需要傳遞絕對路徑(但在這種情況下它不需要前導(dǎo)/)。

getStylesheets().add("rocks/zipcode/atm/styles.css");

重要說明:確保路徑完全正確。打包在 JAR 文件中時(shí)區(qū)分大小寫。當(dāng)不打包在 JAR 文件中時(shí),它可能區(qū)分大小寫,也可能不區(qū)分大小寫,但這取決于底層文件系統(tǒng)。無論哪種方式,最好匹配實(shí)際路徑的大小寫,以避免出現(xiàn)任何問題。


查看完整回答
反對 回復(fù) 2021-12-30
?
慕森卡

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊

如果您的 css 文件位于您班級(jí)的同一個(gè)包中:

scene.getStylesheets().add(getClass().getResource("style.css").toString());


查看完整回答
反對 回復(fù) 2021-12-30
  • 2 回答
  • 0 關(guān)注
  • 389 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)