JavaFX布局-TabPane

news2025/1/21 9:30:59

JavaFX布局-TabPane

  • 常用属性
    • padding
    • side
    • tabClosingPolicy
    • tabDragPolicy
  • 实现方式
    • Java实现
    • fxml实现

  • 组织一组tab的容器,可以设置关闭,拖拽等
  • 每个tab内容可以设置不同容器数据

常用属性

padding

内边距,可以单独设置上、下、左、右的内边距

tabPane.setPadding(new Insets(10, 10, 10, 10));

side

设置tabs的位置,LEFT

tabPane.setSide(Side.LEFT);

public enum Side {
    TOP,
    BOTTOM,
    LEFT,
    RIGHT;
}

tabClosingPolicy

tab关闭策略

tabPane.setTabClosingPolicy(TabPane.TabClosingPolicy.UNAVAILABLE);

public enum TabClosingPolicy {
        /**
         * 仅仅当前选中的tab可以关闭
         */
        SELECTED_TAB,

        /**
         * 所有tab都可关闭
         */
        ALL_TABS,

        /**
         * 所有tab都不可关闭.
         */
        UNAVAILABLE
    }

tabDragPolicy

拖拽策略

tabPane.setTabDragPolicy(TabPane.TabDragPolicy.FIXED);

public enum TabDragPolicy {
        /**
         * 固定不允许拖拽
         */
        FIXED,

        /**
         * 允许拖拽
         */
        REORDER
    }

实现方式

Java实现

在这里插入图片描述

 public static TabPane demo1() {
        TabPane tabPane = new TabPane();
        // 内边距
        tabPane.setPadding(new Insets(10, 10, 10, 10));
        // 位置
        tabPane.setSide(Side.LEFT);
        // 关闭策略
        tabPane.setTabClosingPolicy(TabPane.TabClosingPolicy.UNAVAILABLE);
        // 拖拽策略
        tabPane.setTabDragPolicy(TabPane.TabDragPolicy.FIXED);
        tabPane.setRotateGraphic(false);
        tabPane.setCenterShape(false);

        Tab tab1 = new Tab("Tab 1");
        FlowPane flowPane1 = new FlowPane();
        flowPane1.setOrientation(Orientation.HORIZONTAL);
        for (int i = 1; i <= 5; i++) {
            flowPane1.getChildren().add(new Button("Button " + i));
        }
        tab1.setContent(flowPane1);

        Tab tab2 = new Tab("Tab 2");
        FlowPane flowPane2 = new FlowPane();
        flowPane2.setOrientation(Orientation.VERTICAL);
        for (int i = 6; i <= 10; i++) {
            flowPane2.getChildren().add(new Button("Button " + i));
        }
        tab2.setContent(flowPane2);

        tabPane.getTabs().addAll(tab1, tab2);

        return tabPane;
    }

fxml实现

在这里插入图片描述

<StackPane prefHeight="400" prefWidth="600" xmlns="http://javafx.com/javafx/17.0.2-ea"
           xmlns:fx="http://javafx.com/fxml/1">
    <children>
        <TabPane prefHeight="200.0" prefWidth="200.0" tabClosingPolicy="ALL_TABS" side="TOP" tabDragPolicy="REORDER"
                 rotateGraphic="true" centerShape="true">
            <tabs>
                <Tab text="Tab 1">
                    <content>
                        <FlowPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0"
                                  orientation="VERTICAL">
                            <Button text="Button 1"/>
                            <Button text="Button 2"/>
                            <Button text="Button 3"/>
                            <Button text="Button 4"/>
                            <Button text="Button 5"/>
                        </FlowPane>
                    </content>
                </Tab>
                <Tab text="Tab 2">
                    <content>
                        <FlowPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0"
                                  orientation="HORIZONTAL">
                            <Button text="Button 6"/>
                            <Button text="Button 7"/>
                            <Button text="Button 8"/>
                            <Button text="Button 9"/>
                            <Button text="Button 10"/>
                        </FlowPane>
                    </content>
                </Tab>
            </tabs>
        </TabPane>
    </children>
</StackPane>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1978518.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

webfunny埋点系统如何进行部署?

hello 大家webfunny埋点系统做了不少功能更新&#xff0c;平常给大家分享比较多的是**webfunny前端监控系统**&#xff0c;最近有不少技术同学来了解webfunny埋点系统&#xff0c;今天主要给大家分享下webfunny埋点系统部署&#xff0c;分为本地部署和线上部署。 还没有试用和…

翻译: 可视化深度学习反向传播原理一

本期我们来讲反向传播 也就是神经网络学习的核心算法 稍微回顾一下我们之前讲到哪里之后 首先我要撇开公式不提 直观地过一遍 这个算法到底在做什么 然后如果你们有人想认真看里头的数学 下一期影片我会解释这一切背后的微积分 如果你看了前两期影片 或者你已经有足够背景知…

【文件系统】磁盘的物理结构 | 存储结构

目录 0.前言 1.磁盘的物理结构 1.1什么是二进制&#xff08;0/1&#xff09; 1.2磁盘的存放位置 1.3磁盘的结构 2.磁盘的存储结构 2.1❓数据是怎样在磁盘上存储 2.2❓读写的基本单位是什么 2.3❓如何找到一个指定位置的扇区 2.4❓为什么磁盘的机械结构是这样的 0.前…

Audio Spectrogram Transformer (AST)工作介绍

Audio Spectrogram Transformer (AST)&#xff0c;是一种基于 Transformer 模型的音频分类方法。AST 利用了 Transformer 模型在捕获全局特征方面的优势&#xff0c;将音频信号转换为频谱图进行处理。下面是对 AST 及其相关研究工作的详细介绍&#xff1a; 1.研究背景 传统的音…

SpringAOP-底层实现源码解析

目录 1. Spring AOP原理流程图 2. 动态代理 3. ProxyFactory 4. Advice的分类 5. Advisor的理解 6. 创建代理对象的方式 ProxyFactoryBean BeanNameAutoProxyCreator DefaultAdvisorAutoProxyCreator 7. 对Spring AOP的理解 8. AOP中的概念 9. Advice在Spring AOP中…

文心智能体【MBTI速测小精灵】:趣味速测,精准解析你的性格密码!

文章目录 一、文心智能体平台是什么&#xff1f;二、创建文心智能体智能体创建智能体调试分析智能体基础配置智能体高级配置智能体高级调试 三、文心智能体发布四、文心智能体体验总结 一、文心智能体平台是什么&#xff1f; AgentBuilder文心智能体平台是基于文心大模型的智能…

饮料加速稳定性试验

饮料加速稳定性试验概览 饮料加速稳定性试验是一种通过模拟加速条件来预测饮料在市场销售期间稳定性的测试方法。这种测试对于确保饮料产品在整个保质期内的质量和安全性至关重要。它可以帮助生产企业优化产品配方、改进包装材料、调整储存和运输条件&#xff0c;从而确保产品在…

苍穹外面day13(day10)---订单状态定时处理、来单提醒和客户催单

Spring Task 同学们可以看我这篇文章 Spring Task初学-CSDN博客 订单状态定时处理 新建OrderTask /*** 定时任务类&#xff0c;定时处理订单状态*/ Component Slf4j public class OrderTask {Autowiredprivate OrderMapper orderMapper;/*** 处理超时订单的方法*/Scheduled(c…

【嵌入式之RTOS】什么是消息队列

目录 一、FreeRTOS消息队列的基本概念 二、FreeRTOS消息队列的工作原理 三、FreeRTOS消息队列的特点 四、FreeRTOS消息队列的应用 五、示例 消息队列是一种用于任务间通信的机制&#xff0c;它允许一个任务&#xff08;生产者&#xff09;向消息队列发送消息&#xff0c;而…

使用uniapp+Django开发的在线工具网站

引言 在当今数字化时代&#xff0c;在线工具网站为用户提供了便捷的服务和功能&#xff0c;本文分享了我使用UniApp和Django开发的一款多平台在线工具网站。通过这个项目&#xff0c;我探索了跨平台开发与强大的后端框架结合的优势&#xff0c;实现了用户友好的界面和稳健的功…

【C++】二维数组定义方式

二维数组有四种定义方式 1、数据类型 数组名[行数 ][ 列数 ]; 2、数据类型 数组名[ 行数 ][ 列数 ]{{数据1&#xff0c;数据2}&#xff0c;{数据3&#xff0c;数据4 }}; 3、数据类型 数组名[ 行数 ][ 列数 ]{数据1&#xff0c;数据2&#xff0c;数据3&#xff…

C++ 标准库和标准模板库

参考&#xff1a; C STL 教程 | 菜鸟教程 (runoob.com) C标准库和标准模板库 - 星朝 - 博客园 (cnblogs.com) C强大的功能来源于其丰富的类库及库函数资源。C标准库的内容总共在50个标准头文件中定义。在C开发中&#xff0c;要尽可能地利用标准库完成。这样做的直接好处包括&am…

【Jenkins未授权访问漏洞 】

默认情况下 Jenkins面板中用户可以选择执行脚本界面来操作一些系统层命令&#xff0c;攻击者可通过未授权访问漏洞或者暴力破解用户密码等进入后台管理服务&#xff0c;通过脚本执行界面从而获取服务器权限。 第一步&#xff1a;使用fofa语句搜索 搜索语句&#xff1a; port&…

NICE Seminar(2022-7-17)进化约束优化(中南大学王勇教授)

​​​​​​​ ACO偏向于离散 DE和PSO偏向于连续变量 确定性替换和随机替换 存在缺陷&#xff0c;可行域可能有多个。 Pfea为可行解所占比例 目标空间中的可行域与在决策空间的可行域中的对应关系&#xff1f;&#xff1f;&#xff1f; 维度中套维度&#xff1f;&#xff1…

苹果 Safari 的隐私保护与广告追踪问题 :技术进展与挑战

隐私保护的进展与挑战 近年来&#xff0c;浏览器行业在隐私保护技术方面取得了显著进展&#xff0c;尤其是在广告追踪领域。谷歌的 Chrome 浏览器推广了隐私沙盒&#xff0c;通过将用户可能感兴趣的主题分类并推送给广告商。Mozilla Firefox 和 Meta Facebook 则推出了一种名为…

C 语言学习(5) ---- 汇编语法基础

目录 汇编语言基础x86 体系的寄存器说明Intel 和 AT&T 语法"helloworld" 汇编程序分析指令和伪指令TBD 汇编语言基础 汇编程序基本由 4 种类型的组件组成&#xff1a;指令&#xff08;instruction&#xff09;、伪指令&#xff08;directive&#xff09;、标号&…

Python在指定文件夹下创建虚拟环境

基于不同python版本和第三方包版本开发的项目&#xff0c;为了方便学习和管理python环境&#xff0c;可以在指定的文件夹里创建项目所需的虚拟环境。具体流程如下&#xff1a; (1) 以管理员身份打开Ananconda Prompt&#xff0c;查看当前虚拟环境&#xff0c;输入命令如下&…

C#中的Modbus协议

协议介绍 关于Modbus协议&#xff1a; Modbus协议是MODICON&#xff08;莫迪康&#xff09;&#xff08;现施耐德品牌&#xff09;在1979年开发的&#xff0c;是全球第一个真正用于现场的总线协议&#xff1b;Modbus协议是应用于电子控制器上的一种通用语言。通过此协议&…

一、报名与安装软件

声明 首先声明这个考试是需要费用的&#xff0c;目前我缴纳的费用是980元 官网 报名与学习官网为&#xff1a;https://cloud.aigccert.com/web/index 选择此处&#xff0c;点击报名后按要求完善个人信息。 完善个人信息后可以开始学习视频&#xff0c;视频内容看起来多其实…

Servlet开发流程 (里面有Idea项目添加Tomcat依赖详细教程)

目标: 校验注册时&#xff0c;用户名是否被占用。通过客户端向一个Servlet发送请求&#xff0c;携带username&#xff0c;如果用户 名是zhangsan&#xff0c;则向客户端响应 NO&#xff0c;如果是其他&#xff0c;响应YES。 1.在idea中创建web工程 1右键点击父工程-New-Module …