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

时间:2015-02-07 06:50:21

标签: java javafx javafx-2 javafx-8 fxml

在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");
        }  

    }

}

1 个答案:

答案 0 :(得分:1)

是的,你可以。查看我在How to add a CSS stylesheet in FXML中的帖子,尤其是toolbar.css,在我的情况下是通过fxml加载的。

在有人再次抱怨我不应该引用内容之前:你真的希望我多次复制/粘贴我的解决方案吗?我想我已经在这里发布了4次引用的评论......它总是一个不同的问题(样式表图像未加载,图像加载devenv但不是jar等),所以不重复,但是同样的解决方案。