JavaFX8-如何在调用自定义控件的构造函数时初始化其CSS

JavaFX8-如何在调用自定义控件的构造函数时初始化其CSS,css,javafx-8,Css,Javafx 8,我正在使用JavaFX编程一个自定义控件,特别是一个自定义按钮 public class MyButton extends Button { public MyButton(String text) { super(text); getStylesheets().add(getClass().getResource("/mystyle.css").toExternalForm(); getStyleClass().add("my-butto

我正在使用JavaFX编程一个自定义控件,特别是一个自定义按钮

public class MyButton extends Button {
    public MyButton(String text) {
        super(text);
        getStylesheets().add(getClass().getResource("/mystyle.css").toExternalForm();
        getStyleClass().add("my-button");
    }

    //other stuff
}
在mystyle.css中,我有以下css规则

.my-button {
    -fx-background-color: gray;
    -fx-background-radius: 2;
}
然后在start方法中,我以这种方式将按钮添加到stage

VBox root=new VBox();
Scene scene = new Scene(root, 400, 400);

MyButton button=new MyButton("Click me");

root.getChildren().add(button);
stage.setScene(scene); // stage is the name of Stage parameter
stage.show();
按钮看起来像这样

现在,如果我在按钮构造函数下添加代码

button.setBackground(new Background(new BackgroundFill(
    Color.YELLOW, new CornerRadii(20), new Insets(0,0,0,0)
)));
按钮看起来还是一样的,应该是这样的

我认为问题在于CSS类是在一定的延迟后应用的,所以当应用样式表时,会覆盖手动指定的背景

我想要的是一种直接在构造函数内部应用CSS的方法。可能吗?
谢谢您的帮助。

您是否尝试在构造函数内部调用
applyCSS()
?是的,我做了,但没有改变,按钮仍然保持不变。