gpt4 book ai didi

OSGi 包中的 JavaFX 样式表

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:27:33 34 4
gpt4 key购买 nike

我已将“styles.css”放在我的包的根目录中,现在正试图弄清楚如何在代码中链接它。问题是 @.getStylesheets().add(_) 采用字符串而不是 URL,所以我知道的所有方法在这里都失败了:

拍摄 1:

scene.getStylesheets().add("styles.css");

Nov 15, 2013 2:04:47 PM com.sun.javafx.css.StyleManager loadStylesheetUnPrivileged
WARNING: Resource "styles.css" not found.

拍摄 2:

scene.getStylesheets().add(this.getClass().getResource("styles.css").toExternalForm());

NullPointerException

练习 3:

scene.getStylesheets().add(this.getClass().getClassLoader().getResource("styles.css").toExternalForm());

Nov 15, 2013 2:27:31 PM com.sun.javafx.css.StyleManager loadStylesheetUnPrivileged
INFO: Could not load stylesheet: bundle://5.0:1/styles.css

第 4 场:

scene.getStylesheets().add(myBundle.getEntry("styles.css").toExternalForm());

Nov 15, 2013 1:31:35 PM com.sun.javafx.css.StyleManager loadStylesheetUnPrivileged
INFO: Could not load stylesheet: bundle://5.0:0/styles.css

我正在使用 Felix-4.2.1Java-8 (build 1.8.0-ea-b115)JavaFX-8 (8.0. 0-ea-b115).

最佳答案

这里解释了为什么这不起作用:javafx jira RT-14177 .由于您不能使用资源的“ExternalForm”,我通过直接读取输入流将其复制到临时文件中。

        InputStream inputStream = MainApp.class.getResourceAsStream("/styles/styles.css");
File tempStyleSheetDest = File.createTempFile("javafx_stylesheet", "");
tempStyleSheetDest.deleteOnExit();
Files.copy(inputStream, tempStyleSheetDest.toPath(), StandardCopyOption.REPLACE_EXISTING);
scene.getStylesheets().add(tempStyleSheetDest.toURI().toString());

我真的希望这对你有帮助。

乔纳森

关于OSGi 包中的 JavaFX 样式表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20000897/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com