有谁知道如何在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)
这是我要找的结果
由于在任何时候只能扩展TitledPane同一个Accordion,所以Accordion(在某种程度上)管理TitledPane它包含的任何s 的扩展状态.
你可以做
accordion.setExpandedPane(titledPane);
Run Code Online (Sandbox Code Playgroud)
让手风琴扩大titledPane.
调用titledPane.setExpanded(true);也有效,但只有在窗口显示后才调用(由于我不完全理解的原因).
| 归档时间: |
|
| 查看次数: |
8859 次 |
| 最近记录: |