如何在FXML中使用预定义的Spinner样式类

时间:2015-05-29 02:55:17

标签: java javafx-8 fxml javafx-css

根据this Link javaFX 8u45微调器,可以通过样式类以多种方式设置样式。我知道如何通过代码来实现它。

例如:

x86

,或者

spinner.getStyleClass().add(Spinner.STYLE_CLASS_SPLIT_ARROWS_HORIZONTAL);

然而,不是通过fxml。我试过这个,但它没有用。我是通过scenebuilder版本8完成的。

spinner.getStyleClass().add("split-arrows-horizontal");

1 个答案:

答案 0 :(得分:1)

我不确定为什么,但在FXML中定义outside: function(ctx, s, cx, cy) { ctx.lineTo(cx + s * .34, cy); ctx.bezierCurveTo(cx + s * .86, cy, cx + s * .4, cy + s * -.15, cx + s * .4, cy + s * -.15); ctx.bezierCurveTo(cx + s * .3, cy + s * -.3, cx + s * .5, cy + s * -.3, cx + s * .5, cy + s * -.3); ctx.bezierCurveTo(cx + s * .7, cy + s * -.3, cx + s * .6, cy + s * -.15, cx + s * .6, cy + s * -.15); ctx.bezierCurveTo(cx + s * .5, cy, cx + s * .65, cy, cx + s * .65, cy); ctx.lineTo(cx + s, cy) }, inside: function(ctx, s, cx, cy) { ctx.lineTo(cx + s * .35, cy); ctx.bezierCurveTo(cx + s * .505, cy + .05, cx + s * .405, cy + s * .155, cx + s * .405, cy + s * .1505); ctx.bezierCurveTo(cx + s * .80, cy + s * .80, cx + s * .5, cy + s * .3, cx + s * .5, cy + s * .3); ctx.bezierCurveTo(cx + s * .7, cy + s * .29, cx + s * .6, cy + s * .15, cx + s * .6, cy + s * .15); ctx.bezierCurveTo(cx + s * .5, cy, cx + s * .65, cy, cx + s * .65, cy); ctx.lineTo(cx + s, cy) }, ,如

styleClass

不会导致将该样式添加到styleClass列表。您可以通过

进行检查
<Spinner fx:id="spn" styleClass="split-arrows-horizontal"/>

然而,在FXML中将其定义为

@FXML private Spinner spn;

@Override
public void initialize( URL url, ResourceBundle rb )
{
    System.out.println( "getStyleClass: " + spn.getStyleClass() );
}

按预期工作。