JavaFX - 为自定义控件加载样式表

JavaFX - Loading stylesheet for custom control

在 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 中查看我的 post,尤其是 toolbar.css,在我的例子中,它是通过 fxml 加载的。

在有人再次抱怨我不应该引用内容之前:你真的要我多次 copy/paste 我的解决方案吗?我想我已经 post 在这里编辑了 4 次引用的评论……这总是一个不同的问题(样式表图像未加载,图像在 devenv 中加载但不在 jar 中,等等),所以不是重复的,但是同样的解决方案。