установите CheckBoxTreeItem на всегда выбранный - PullRequest
0 голосов
/ 22 января 2019

Я использую древовидное представление, чтобы быстрее перемещаться в моем печатном виде. Перед тем, как пользователь печатает документ, он может выбрать или отменить выбор столбцов. Некоторые из столбцов являются обязательными, поэтому я хочу, чтобы они всегда выбирались, даже если пользователь пытается отменить их выбор. Это пример того, как это выглядит. Как я могу установить выбор для элемента в true и сохранить его таким образом?

public class TreeItemExample extends Application {

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

@Override
public void start(Stage primaryStage) {
    primaryStage.setTitle("Hello World!");

    AnchorPane root = new AnchorPane();
    TreeView<String> treeView = new TreeView<>();
    CheckBoxTreeItem<String> rootItem = new CheckBoxTreeItem<>("Example");
    CheckBoxTreeItem<String> mandatoryItem = new CheckBoxTreeItem<>("A");
    CheckBoxTreeItem<String> optionalItem = new CheckBoxTreeItem<>("B");

    mandatoryItem.setSelected(true);
    mandatoryItem.selectedProperty().addListener((observable, oldValue, newValue) -> {
        newValue = true;
        mandatoryItem.setSelected(true);
    });
    rootItem.getChildren().addAll(mandatoryItem, optionalItem);
    treeView.setRoot(rootItem);
    treeView.setCellFactory(CheckBoxTreeCell.<String>forTreeView());

    root.getChildren().add(treeView);

    primaryStage.setScene(new Scene(root, 300, 250));
    primaryStage.show();
}

}

1 Ответ

0 голосов
/ 22 января 2019

Изменить обязательный элемент выбранный прослушиватель свойства на:

mandatoryItem.selectedProperty().addListener((observable, oldValue, newValue) -> {
    Platform.runLater(() -> mandatoryItem.setSelected(true));
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...