我正在为JavaFX使用JFoenix库,我想在框的左侧显示复选框标签。
从(默认):
致:
查看可用的方法,这是唯一能读取的东西,但它没有做任何事情(我猜它只适用于其他图形):
checkBox.setContentDisplay(ContentDisplay.LEFT);
// checkBox.setContentDisplay(ContentDisplay.RIGHT);
是否有另一种方法或CSS样式来获取左侧的标签?谢谢
答案 0 :(得分: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);
答案 1 :(得分:1)
如果有人仍然面临同样的问题,这里是答案
来自java代码
checkbox.setNodeOrientation(NodeOrientation.RIGHT_TO_LEFT);
来自 fxml 文件
nodeOrientation="RIGHT_TO_LEFT"
答案 2 :(得分:0)
您必须调整或覆盖JFXCheckBoxSkin
的layoutChildren()
方法才能将复选框放在标签后面。
更改layoutLabelInArea()
方法的x位置,使标签移动/保持在左侧。这可以通过从boxWidth
:
xOffset
来实现
layoutLabelInArea(xOffset, yOffset, labelWidth, maxHeight, checkBox.getAlignment());
同样,将labelWidth
添加到xOffset
,将复选框移到右侧:
positionInArea(box, xOffset+labelWidth, yOffset, boxWidth, maxHeight, 0, checkBox.getAlignment()
.getHpos(), checkBox.getAlignment().getVpos());