gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 02:04:59 29 4
gpt4 key购买 nike

有人知道如何在 JavaFX 中以编程方式折叠 TitledPane 吗?我知道 setExpanded 和 setCollapsible 方法可用,但它仅启用该属性。我想在没有任何鼠标交互的情况下折叠 Pane 。

    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();

这是我正在寻找的结果

最佳答案

由于同一 Accordion 中只有一个 TitledPane 可以随时展开,因此 Accordion (在某种程度上)管理展开状态它包含的任何 TitledPane

你可以做到

accordion.setExpandedPane(titledPane);

让 Accordion 展开titledPane

调用 titledPane.setExpanded(true); 也可以,但前提是您在窗口显示后调用它(出于我不完全理解的原因)。

关于java - 如何在 JavaFX 中以编程方式折叠 TitledPane?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26999322/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com