作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在处理 official JavaFX tutorial .我正在尝试将示例 5-1 中的代码添加到我的场景中,根据说明,它是“Main”类的一部分:
Scene scene = new Scene(grid, 300, 275);
primaryStage.setScene(scene);
scene.getStylesheets().add(Login.class.getResource("Login.css").toExternalForm());
primaryStage.show();
我使用的是 JavaFX 运行时版本 8.0.72-b15 和 IntelliJ IDEA 15.0.5。我已将“Login.css”文件存储在文件夹中:
C:\Users\XXXXXXXX\IdeaProjects\Login\src
我的项目文件结构如下:
当我运行“Main”时,我收到以下错误消息:
Information:Using javac 1.8.0_77 to compile java sources
Information:java: Errors occurred while compiling module 'Login'
Information:6/9/2016 2:04 PM - Compilation completed with 1 error and 0 warnings in 571ms
C:\Users\XXXXXXXX\IdeaProjects\Login\src\sample\Main.java
Error:(69, 36) java: cannot find symbol
symbol: class Login
location: class sample.Main
This answer似乎暗示自定义 CSS 文件应位于“src”文件夹下,但它似乎对我不起作用。如何让我的 JavaFX 项目导入这个自定义 CSS 文件?
最佳答案
您没有登录类...您只有一个 sample.Main
类,因此代码中的 Login.class
引用不会解析(该错误与 CSS 无关)。
修复类引用错误后,您还需要修复对 css 文件位置的引用(因为您的 Login.css
文件不在示例包中,而是在源代码中root,所以它最终会被复制到类路径的根目录中)。要引用类路径根目录中的资源,请在资源名称前加上 /
,即 /Login.css
。
因此,在进行这些更改之后,您将获得以下代码(您已在之前的评论中验证过该代码有效):
scene.getStylesheets().add(sample.Main.class.getResource("/Login.css").toExternalForm());
关于JavaFX 8 : Adding a Custom CSS File Via class. getResource() 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37733289/
我是一名优秀的程序员,十分优秀!