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

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

    }

}

最佳答案

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

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

关于JavaFX - 加载自定义控件的样式表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28379464/

相关文章:

java - 获取要在 Java FX 中的 anchor Pane 内显示的子节点?

java - 如果页面上存在该元素,如何显示在控制台中

java - Android:安装 GoSMS Pro 时收听传入的短信

java - 据我所知, showinputdialog 返回字符串类型的输出,但它给了我一个错误,它无法将对象转换为字符串

JavaFX Spinner.getValue()

Java:无法读取我在 session 期间复制的文件,程序重新启动后工作正常

java - 正则表达式用于分割每个字符,但将数字和小数保留在一起

canvas - 如何以不锯齿的方式绘制由多条线段组成的曲线

java - GridPane 未绑定(bind)到 BorderPane

java - 选项卡 Pane 中的自定义组件不可交互