【问题标题】:Label to the left of checkbox with JFoenix in JavaFXJavaFX中带有JFoenix的复选框左侧的标签
【发布时间】:2018-01-05 15:57:11
【问题描述】:

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

来自(默认):

收件人:

查看可用的方法,这是唯一可以读取但它没有做任何事情的东西(我猜它只是用于其他图形):

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

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

【问题讨论】:

    标签: css user-interface javafx javafx-8 jfoenix


    【解决方案1】:

    如果有人仍然面临同样的问题,这里是答案

    来自java代码

    checkbox.setNodeOrientation(NodeOrientation.RIGHT_TO_LEFT);
    

    来自 fxml 文件

    nodeOrientation="RIGHT_TO_LEFT"
    

    【讨论】:

      【解决方案2】:

      您可以使用标签并将其与 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);
      

      【讨论】:

      • 两种很好的方法,但我想知道是否可以移动复选框自己的标签。
      • checkbox勾选后如何改变颜色?
      【解决方案3】:

      您必须调整或覆盖JFXCheckBoxSkinlayoutChildren() 方法才能将复选框放在其标签之后。

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

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

      同样,通过将labelWidth 添加到xOffset 将复选框向右移动:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-12
        • 1970-01-01
        • 2021-09-28
        • 1970-01-01
        相关资源
        最近更新 更多