如何在JavaFX中以编程方式折叠TitledPane?

mga*_*and 3 java javafx

有谁知道如何在JavaFX中以编程方式折叠TitledPane?我知道方法setExpanded和setCollapsible是可用的,但它只启用该属性.我想在没有任何鼠标交互的情况下折叠窗格.

    Button btn = new Button();
    btn.setText("Say 'Hello World'");
    btn.setOnAction(new EventHandler<ActionEvent>() {

        @Override
        public void handle(ActionEvent event) {
            System.out.println("Hello World!");
        }
    });

    TitledPane titledPane = new TitledPane();
    titledPane.setAnimated(true);
    titledPane.setText("This is a test");
    titledPane.setContent(btn);
    titledPane.setExpanded(true);

    Accordion accordion = new Accordion();
    accordion.getPanes().add(titledPane);

    Button show = new Button("Expand");
    show.setOnAction((ActionEvent event) -> {
        accordion.setExpandedPane(titledPane); // Expanded Pane works!
    });

    Button hide = new Button("Collapse");
    hide.setOnAction((ActionEvent event) -> {
        //???
    });

    HBox layout = new HBox(10);
    layout.setStyle("-fx-background-color: cornsilk; -fx-padding: 10;");
    layout.getChildren().addAll(show, hide, accordion);
    Scene scene = new Scene(layout, 320, 240);
    scene.setFill(Color.GHOSTWHITE);

    primaryStage.setTitle("Hello World!");
    primaryStage.setScene(scene);
    primaryStage.show();
Run Code Online (Sandbox Code Playgroud)

这是我要找的结果

Jam*_*s_D 8

由于在任何时候只能扩展TitledPane同一个Accordion,所以Accordion(在某种程度上)管理TitledPane它包含的任何s 的扩展状态.

你可以做

accordion.setExpandedPane(titledPane);
Run Code Online (Sandbox Code Playgroud)

让手风琴扩大titledPane.

调用titledPane.setExpanded(true);也有效,但只有在窗口显示后才调用(由于我不完全理解的原因).