2017-07-29 235 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());