
【笔记】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发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年04月03日 20时01分02秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【活动】直播揭秘<如何从0开发HarmonyOS硬件>
2021-05-09
Cocos平台集成AGC性能管理(二)—— 性能管理SDK集成
2021-05-09
华为推送服务 | 简单一招,提高用户活跃和留存
2021-05-09
基于Cocos SDKHub接入华为HMS Game服务—打包上架流程
2021-05-09
Unity平台 | 快速集成华为性能管理服务
2021-05-09
详细实例教程!集成华为虚假用户检测,防范虚假恶意流量
2021-05-09
对模拟器虚假设备识别能力提升15%!每日清理大师App集成系统完整性检测
2021-05-09
HMS Core Discovery-七个推送技巧带你玩转App运营
2021-05-09
使用Power BI构建数据仓库与BI方案
2021-05-09
pytest封神之路第二步 132个命令行参数用法
2021-05-09
字符集其实很简单
2021-05-09
Django认证系统并不鸡肋反而很重要
2021-05-09
快用Django REST framework写写API吧
2021-05-09
tep用户手册帮你从unittest过渡到pytest
2021-05-09
12张图打开JMeter体系结构全局视角
2021-05-09