2017-07-29 44 views
1

我正在使用用于JavaFX的JFoenix库,并且我想在框的左侧显示复选框标签。JFoenix在JavaFX中的复选框左边的标签

从(默认):

enter image description here

要:

enter image description here

望着可用的方法,这是读取,因为它会工作的唯一的东西,但它不做任何事情(我猜这只是为了其他图形):

checkBox.setContentDisplay(ContentDisplay.LEFT); 
// checkBox.setContentDisplay(ContentDisplay.RIGHT); 

是否有另一种方法或CSS样式来获取左侧的标签?谢谢

回答

1

您可以使用标签和带jfxCheckBox包装在一个HBox中像下面简单的办法:

JFXCheckBox jfxCheckBox = new JFXCheckBox(); 
HBox hBox = new HBox(); 
Label label= new Label("CHECK BOX"); 
hBox.getChildren().addAll(label, jfxCheckBox); 
hBox.setSpacing(10); 

其他方式:

Label lblCheckbox = new Label("CHECK BOX"); 
lblCheckbox.setGraphic(new JFXCheckBox()); 
lblCheckbox.setContentDisplay(ContentDisplay.RIGHT); 
+0

兼具优异的方法,但我想知道如果有可能移动复选框的自己的标签。 –

0

你必须去适应或重写layoutChildren()JFXCheckBoxSkin的方法,以便将复选框放在标签后面。

更改layoutLabelInArea()方法的x位置,使标签移动/保持在左侧。这可以通过从xOffset取出boxWidth来实现:

layoutLabelInArea(xOffset, yOffset, labelWidth, maxHeight, checkBox.getAlignment()); 

同样,通过将labelWidthxOffset移动的复选框,右:

positionInArea(box, xOffset+labelWidth, yOffset, boxWidth, maxHeight, 0, checkBox.getAlignment() 
       .getHpos(), checkBox.getAlignment().getVpos());