JavaFx:是否可以将复选框的文本内容上方的框对齐?

我想要实现这样的目标:

JavaFx:是否可以将复选框的文本内容上方的框对齐?

iCMS 回答:JavaFx:是否可以将复选框的文本内容上方的框对齐?

下面是实现所需目标的一个简单示例。更专业的方法是实现自定义外观。也许会有其他人分享。

应用程序:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.CheckBox;
import javafx.scene.control.ContentDisplay;
import javafx.scene.control.Label;
import javafx.scene.input.MouseButton;
import javafx.scene.layout.Pane;
import javafx.scene.text.TextAlignment;
import javafx.stage.Stage;


public class App extends Application {

    @Override
    public void start(Stage stage) {

        // Create a separated label at first:
        Label label = new Label("Am efectuat toate");

        // Create a check box without a text
        CheckBox checkBox = new CheckBox();

        // Put the check box as the graphic node of the label:
        label.setGraphic(checkBox);

        // Put the box on top of the label:
        label.setContentDisplay(ContentDisplay.TOP);

        // Toggle selected property of checkbox on label primary mouse button click:
        label.setOnMouseClicked(mouseEvent -> {
            if (mouseEvent.getButton() == MouseButton.PRIMARY)
                checkBox.setSelected(!checkBox.isSelected());
        });

        // If you want to have the last word "toate" in a second line:
        label.setWrapText(true);
        label.setMaxWidth(80);
        label.setTextAlignment(TextAlignment.CENTER);

        // Create scene and show:
        Pane root = new Pane();
        root.getChildren().add(label);
        stage.setScene(new Scene(root,120,60));
        stage.show();
    }
    

    public static void main(String[] args) {
        launch();
    }
}

预览:

preview

本文链接:https://www.f2er.com/1752830.html

大家都在问