【笔记】javafx_Accordion和TitledPane可折叠组件
发布日期:2021-05-07 06:59:29 浏览次数:46 分类:精选文章

本文共 3000 字,大约阅读时间需要 10 分钟。

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.image.ImageView;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 an = new AnchorPane();        //提示:根据文档的提示,不要给TitledPane设置宽高        TitledPane tilePane1 = new TitledPane("tilePane1",new Button("button1"));        TitledPane tilePane2 = new TitledPane("tilePane2",new Button("button2"));        TitledPane tilePane3 = new TitledPane("tilePane3",new Button("button3"));        Accordion accordion = new Accordion();//折叠面板        accordion.getPanes().addAll(tilePane1,tilePane2,tilePane3);//每次只能展开一个TitledPane        //设置默认展开的组件        accordion.setExpandedPane(tilePane3);//        an.getChildren().addAll(tilePane1,tilePane2,tilePane3);        an.getChildren().addAll(accordion);//        AnchorPane.setTopAnchor(tilePane2,100.0);//        AnchorPane.setTopAnchor(tilePane3,200.0);        //是否有动画效果//        tilePane1.setAnimated(false);        //是否允许折叠//        tilePane2.setCollapsible(false);//不允许折叠,就只能一直处在展开状态        //是否允许展开//        tilePane2.setExpanded(false);//不允许展开,就只能一直处于折叠状态        //内容设置        HBox hbox = new HBox(new Button("button1"),new Button("button2"),new Button("button3"));        tilePane3.setContent(hbox);        //设置指定图片(Node类型)        tilePane3.setGraphic(new ImageView("icon/icon.png"));//应该传一个图片        //设置初始状态        //箭头方向        tilePane3.setNodeOrientation(NodeOrientation.RIGHT_TO_LEFT);        //TitledPane监听自己的状态        tilePane1.expandedProperty().addListener(new ChangeListener
() { @Override public void changed(ObservableValue
observable, Boolean oldValue, Boolean newValue) { System.out.println(newValue);//打印状态,展开为true,折叠为false } }); //Accordion监听子组件 accordion.expandedPaneProperty().addListener(new ChangeListener
() { @Override public void changed(ObservableValue
observable, TitledPane oldValue, TitledPane newValue) { if(newValue == null){ //折叠起来的时候新值为空 System.out.println(oldValue.getText() + " 折叠"); return; } System.out.println(newValue.getText() + " 展开"); } }); Scene scene = new Scene(an); primaryStage.setScene(scene); primaryStage.setHeight(800); primaryStage.setWidth(800); primaryStage.setTitle("JavaFX"); primaryStage.show(); }}

效果:

在这里插入图片描述

参考:

https://www.bilibili.com/video/BV13t411Z7es

上一篇:【ybt高效进阶2-2-3】【luogu P2601】对称正方形
下一篇:【笔记】javafx_菜单相关_选项加快捷键_右键弹出菜单_等

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2025年04月03日 20时01分02秒