在 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");
}
}
}
最佳答案
是的,你可以。查看我的帖子How to add a CSS stylesheet in FXML ,尤其是 Toolbar.css,在我的例子中是通过 fxml 加载的。
在有人再次提示我不应该引用内容之前:您真的希望我多次复制/粘贴我的解决方案吗?我想我已经在这里发布了 4 次引用的评论...这总是一个不同的问题(样式表图像未加载,devenv 中的图像已加载但不在 jar 中,等等),所以不是重复的,而是相同的解决方案。
关于JavaFX - 加载自定义控件的样式表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28379464/