TitledPane、Accordion

TitledPane标题面板

  • 创建一个标题面板TitledPane titledPane = new TitledPane("TitledPane", new Button("Button1"));

  • 创建多个标题面板放置在布局中

    TitledPane titledPane = new TitledPane("TitledPane", new Button("Button1"));  
    TitledPane titledPane1 = new TitledPane();  
    titledPane1.setText("TitledPane1");  
    titledPane1.setContent(new Button("Button2"));  
    TitledPane titledPane2 = new TitledPane();  
    titledPane2.setText("TitledPane2");  
    HBox hBox = new HBox();  
    hBox.setStyle("-fx-background-color: #ff0000");  
    hBox.getChildren().addAll(new Button("Button3"),new Button("Button4"),new Button("Button5"));  
    titledPane2.setContent(hBox);
    AnchorPane.getChildren().addAll(titledPane, titledPane1,titledPane2);
    

  • 设置标题面板是否有动画效果titledPane.setAnimated(true);

  • 设置标题面板是否可折叠titledPane.setCollapsible(false);

  • 设置标题面板是否展开titledPane.setExpanded(false);

  • 设置标题面板的图标titledPane2.setGraphic(new Button("Button6"));

  • 设置组件从右到左进行排列titledPane2.setNodeOrientation(NodeOrientation.INHERIT);

  • 标题面板展开收起事件

    titledPane.expandedProperty().addListener((observable, oldValue, newValue) -> {  
      System.out.println("oldValue = " + oldValue + " newValue = " + newValue);  
    });
    

Accordion手风琴

特点:手风琴中可以设置多个标题面板,同一时间只能展开一个面板

  • 创建一个手风琴Accordion accordion = new Accordion();

  • 在手风琴中添加标题面板accordion.getPanes().addAll(titledPane,titledPane1,titledPane2);

  • 手风琴中所有标题面板展开和收起事件

    accordion.expandedPaneProperty().addListener((observable, oldValue, newValue) -> {  
        // 解决面板收起时,newValue为null的问题  
        if (newValue == null) {  
            System.out.println("oldValue = " + oldValue.getText()+"被折叠");  
            return;  
        }  
        System.out.println(newValue.getText());  
    });