ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

JavaFX - Accordion(衔接TitledPane)

2021-06-16 22:04:22  阅读:287  来源: 互联网

标签:Accordion javafx JavaFX scene ttp2 import new TitledPane


 Accordion是与TitledPane一起使用,Accordion会将ttp组合起来如下图:,一个展开会将其余的缩进。还可以设置监听事件,监听打开的ttp。

下图ttp2设置了将展开按钮在右边。

package sample;


import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.geometry.NodeOrientation;
import javafx.scene.Scene;
import javafx.scene.control.Accordion;
import javafx.scene.control.Button;
import javafx.scene.control.TitledPane;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;


public class Main extends Application {


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

    @Override
    public void start(Stage primaryStage) throws Exception {


        AnchorPane ap = new AnchorPane();
        Accordion acc = new Accordion();
        ap.setStyle("-fx-background-color: darkkhaki");

        TitledPane ttp1 = new TitledPane("TitledPane1", new Button("无动画折叠"));//点击收缩
        ttp1.setExpanded(false);//默认不展开,点击之后展开
        ttp1.setAnimated(false);//设置展开没有动画,默认有


        TitledPane ttp2 = new TitledPane();//点击收缩
        ttp2.setText("TTP2");
        ttp2.setContent(new Button("TTP2"));
        ttp2.setNodeOrientation(NodeOrientation.RIGHT_TO_LEFT);//把ttp2的显示的箭头改到右边,默认在左边



        TitledPane ttp3 = new TitledPane();//点击收缩
        ttp3.setText("TTP3");
        HBox hBox = new HBox();
        hBox.setStyle("-fx-background-color: darkslateblue");
        hBox.getChildren().addAll(new Button("b3333"), new Button("b44444"), new Button("b5555"));
        ttp3.setContent(hBox);

        
        acc.getPanes().addAll(ttp1,ttp2,ttp3);//每次只能展开一个
        ap.getChildren().addAll(acc);
        acc.expandedPaneProperty().addListener(new ChangeListener<TitledPane>() {//全部缩起来的时候会报空指针异常,得加上if
            @Override
            public void changed(ObservableValue<? extends TitledPane> observable, TitledPane oldValue, TitledPane newValue) {
               if(newValue == null){
                   System.out.println(oldValue.getText()+"折叠");
                   return;
               }
                System.out.println("看看是谁展开了"+newValue.getText());
            }
        });

        Scene scene = new Scene(ap);


        primaryStage.setScene(scene);
        primaryStage.setTitle("Java FX  ");
        primaryStage.setWidth(800);
        primaryStage.setHeight(800);
        primaryStage.show();


    }


}

 

标签:Accordion,javafx,JavaFX,scene,ttp2,import,new,TitledPane
来源: https://blog.csdn.net/weixin_42029241/article/details/117968033

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有