JavaFX样式表标签报错:无法解析stylesheet符号及value属性不被允许问题求助
JavaFX样式表标签报错:无法解析stylesheet符号及value属性不被允许问题求助
嘿,我来帮你捋捋这个问题~你现在遇到的报错,核心原因是在FXML的GridPane里直接用<stylesheet>标签是不符合JavaFX FXML语法的,这个写法本身就不对,所以IDE才会提示无法识别stylesheet符号和value属性。
给你两种正确的样式表加载方式,选哪种都可以:
方法一:在Java代码里给Scene添加样式表
如果你习惯在后端代码里控制样式加载,可以在加载FXML后,获取对应的Scene对象,然后把样式表加进去,代码示例如下:// 加载你的FXML文件 GridPane gridPane = FXMLLoader.load(getClass().getResource("你的FXML文件名.fxml")); // 创建Scene并关联GridPane Scene scene = new Scene(gridPane); // 添加样式表,注意要正确获取css文件的路径 scene.getStylesheets().add(getClass().getResource("colours.css").toExternalForm());方法二:直接在FXML的根元素(GridPane)上用stylesheets属性
这种方式更贴合FXML的写法,你只需要在GridPane的标签里添加stylesheets属性,用@符号引用你的css文件即可,示例:<GridPane xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml" stylesheets="@colours.css"> <!-- 这里放GridPane里的其他控件 --> </GridPane>这里的
@符号是FXML里专门用来引用类路径下资源的语法,能帮你正确定位到css文件。
你原来的写法是凭空加了一个<stylesheet>标签,FXML规范里根本没有这个独立标签,所以编译器肯定会报错的,换成上面两种方法之一应该就能解决问题啦~
备注:内容来源于stack exchange,提问作者IMP9024
相关产品推荐
相关产品推荐

