在JavaFX中,您可以使用类似
的内容为场景加载样式表scene.getStylesheets().addAll(getClass().getResource("/css/background.css").toExternalForm());
如果我创建一个自定义控件,如下所示,我可以加载该控件的样式表,以便在该控件中使用。而不是场景?
这是一个基本控件
public class EventListPane extends VBox {
@FXML
private ListView<Event> listView;
public EventListPane() {
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/fxml/EventListPane.fxml"));
fxmlLoader.setController(this);
fxmlLoader.setRoot(this);
// Can i load the stylesheet for this control somewhere here??
try {
fxmlLoader.load();
} catch (Exception ex) {
Console.Log("Error loading eventListPane");
}
}
}
答案 0 :(得分:1)
是的,你可以。查看我在How to add a CSS stylesheet in FXML中的帖子,尤其是toolbar.css,在我的情况下是通过fxml加载的。
在有人再次抱怨我不应该引用内容之前:你真的希望我多次复制/粘贴我的解决方案吗?我想我已经在这里发布了4次引用的评论......它总是一个不同的问题(样式表图像未加载,图像加载devenv但不是jar等),所以不重复,但是同样的解决方案。