JavaFX布局-HBox

JavaFX布局-HBox

  • 常用属性
    • alignment
    • spacing
    • children
    • margin
    • padding
    • hgrow
  • 实现方式
    • Java实现
    • Xml实现
  • 综合案例

  • HBox按照水平方向排列其子节点
  • 改变窗口大小,不会该部整体布局
  • 窗口太小会遮住内部元素,不会产生滚动条
    在这里插入图片描述

常用属性

alignment

对齐方式

new HBox().setAlignment(Pos.CENTER_RIGHT);
public enum Pos {/*** Represents positioning on the top vertically and on the left horizontally.*/TOP_LEFT(TOP, LEFT),/*** Represents positioning on the top vertically and on the center horizontally.*/TOP_CENTER(TOP, HPos.CENTER),/*** Represents positioning on the top vertically and on the right horizontally.*/TOP_RIGHT(TOP, RIGHT),/*** Represents positioning on the center vertically and on the left horizontally.*/CENTER_LEFT(VPos.CENTER, LEFT),/*** Represents positioning on the center both vertically and horizontally.*/CENTER(VPos.CENTER, HPos.CENTER),/*** Represents positioning on the center vertically and on the right horizontally.*/CENTER_RIGHT(VPos.CENTER, RIGHT),/*** Represents positioning on the bottom vertically and on the left horizontally.*/BOTTOM_LEFT(BOTTOM, LEFT),/*** Represents positioning on the bottom vertically and on the center horizontally.*/BOTTOM_CENTER(BOTTOM, HPos.CENTER),/*** Represents positioning on the bottom vertically and on the right horizontally.*/BOTTOM_RIGHT(BOTTOM, RIGHT),/*** Represents positioning on the baseline vertically and on the left horizontally.*/BASELINE_LEFT(BASELINE, LEFT),/*** Represents positioning on the baseline vertically and on the center horizontally.*/BASELINE_CENTER(BASELINE, HPos.CENTER),/*** Represents positioning on the baseline vertically and on the right horizontally.*/BASELINE_RIGHT(BASELINE, RIGHT);
}    

spacing

子节点间的水平间距

new HBox().setSpacing(10);

children

子节点数据

new HBox().getChildren().add(null);
for (Node child : hBox.getChildren()) {// todo
}

margin

子节点边距

HBox.setMargin(hbox.getChildren().get(0), new Insets(5, 10, 5, 10));

padding

容器边缘与其子节点之间的距离

new HBox().setPadding(new Insets(5, 10, 5, 10));

hgrow

设置额外的水平空间填充属性

HBox.setHgrow(hBox.getChildren().get(0), Priority.ALWAYS);

实现方式

Java实现

HBox hBox = new HBox();
// 设置子节点间的垂直间距
hBox.setSpacing(10);
// 设置子节点在hBox中对齐方式
hBox.setAlignment(Pos.CENTER_RIGHT);
// 容器边缘与其子节点之间的距离
hBox.setPadding(new Insets(10, 5, 10, 5));Label label = new Label("label1");
HBox.setMargin(label, new Insets(10, 5, 10, 5));
hBox.getChildren().add(label);for (int i = 0; i < 5; i++) {Button button = new Button();button.setId("btn_" + i);button.setText("按钮-" + i);HBox.setMargin(button, new Insets(10, 5, 10, 5));hBox.getChildren().add(button);
}// 最后一个节点填充剩余空间
HBox.setHgrow(hBox.getChildren().get(0), Priority.ALWAYS);

Xml实现

<HBox xmlns:fx="http://javafx.com/fxml" fx:controller="org.a.b.c.d.fx.demo.controller.HBoxController"alignment="CENTER_RIGHT" spacing="20"><Button text="Hello!"/><Button text="按钮1"/><Button text="按钮2"/><Button text="按钮3"/><Button text="按钮4"/><Button text="按钮5"/>
</HBox>

综合案例

在这里插入图片描述

BorderStroke borderStroke = new BorderStroke(Color.RED, BorderStrokeStyle.SOLID, new CornerRadii(5), new BorderWidths(1));
Border border = new Border(borderStroke);HBox hBox = new HBox();
// 设置子节点间的垂直间距
hBox.setSpacing(10);
// 设置子节点在hBox中对齐方式
hBox.setAlignment(Pos.CENTER_RIGHT);
// 容器边缘与其子节点之间的距离
hBox.setPadding(new Insets(10, 5, 10, 5));Label label = new Label("label1");
label.setBorder(border);
HBox.setMargin(label, new Insets(10, 5, 10, 5));
hBox.getChildren().add(label);for (int i = 0; i < 5; i++) {Pane pane = new Pane();pane.setId("pane_" + i);pane.setMinWidth(20);pane.setBorder(border);// 设置Pane边距HBox.setMargin(pane, new Insets(10, 5, 10, 5));hBox.getChildren().add(pane);
}// 第一个节点填充剩余空间
HBox.setHgrow(hBox.getChildren().get(0), Priority.ALWAYS);

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

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

相关文章

Angular前端项目在Apache httpd服务器上的部署

Apache Httpd和Tomcat主要区别&#xff1a;Tomcat是一个Java Servlet容器&#xff0c;用于运行Java Servlet和JavaServer Pages&#xff08;JSP&#xff09;&#xff0c;而Apache HTTP服务器是一个通用的Web服务器&#xff0c;用于提供静态和动态内容。 Apache httpd安装&#…

RT Thread + CLion环境搭建

RT Thread CLion环境搭建 0.前言一、准备工具1. Env RT Thread v5.12.CLion安装3.编译及下载工具 二、新建Env工程三、CLion配置四、运行测试 0.前言 事情的起因是最近在使用RT Thread Studio时&#xff0c;发现默认的 rtt 内核版本及交叉编译链版本都过于陈旧&#xff0c;于…

SpringBoot 表单提交参数绑定 List 下标越界,超过 256,报数组越界异常

文章目录 》原因》解决方案 》原因 Spring Validation 的 org.springframework.validation.DataBinder 类中默认限制&#xff0c;表单提交 List 元素数量超过 256 时就会抛出异常 public class DataBinder implements PropertyEditorRegistry, TypeConverter {/** Default li…

JS算法-十大排序算法(上)

思想小剧场 如果我的相对论被证明是正确的&#xff0c;德国人就会说我是德国人&#xff0c;法国人会说我是一个世界公民&#xff1b;如果我的相对论被否定了&#xff0c;法国佬就会骂我是德国鬼子&#xff0c;而德国人就会把我归为犹太人。—爱因斯坦 以下案例都是升序 const a…

《无畏契约》游戏画面出现“撕裂感“,你清楚背后的原理吗?

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏:&#x1f355; Collection与数据结构 (91平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 &#x1f9c0;Java …

信息化总体架构方法_2.信息化工程建设方法

1.信息化架构模式 信息化架构一般有两种模式&#xff0c;一种是数据导向架构&#xff0c;一种是流程导向架构。对于数据导向架构重点是在数据中心&#xff0c;BI商业智能等建设中使用较多&#xff0c;关注数据模型和数据质量&#xff1b;对于流程导向架构&#xff0c;SOA本身就…

黑马程序员鸿蒙HarmonyOS端云一体化开发【13-15】

前置知识&#xff1a;arkts 一套开发工具&#xff0c;一套语言&#xff0c;搞定客户端和云端两个的编写。其中application就是客户端&#xff0c;cloudProgram就是云端。 开发人员->全栈开发工程师&#xff0c;降低了开发成本&#xff0c;且提供了很多现成的云服务&#xf…

AI原生实践:测试用例创作探索

测试用例作为质量保障的核心&#xff0c;影响着研发-测试-发布-上线的全过程&#xff0c;如单元测试用例、手工测试用例、接口自动化用例、UI 自动化用例等&#xff0c;但用例撰写的高成本尤其是自动化用例&#xff0c;导致了用例的可持续积累、更新和迭代受到非常大制约。长久…

Python并发编程 05 锁、同步条件、信号量、线程队列、生产者消费者模型

文章目录 一、基础概念二、同步锁三、线程死锁和递归锁四、同步条件&#xff08;event&#xff09;五、信号量六、线程队列&#xff08;queue&#xff09;1、常用方法2、queue模块的三种模式&#xff08;1&#xff09;FIFO队列&#xff08;2&#xff09;LIFO队列&#xff08;3&…

【JS面试题】原型原型链

一、面试真题展示&#xff1a; 1. 如何准确判断一个变量是不是数组&#xff1f; ① 使用instanceof进行判断&#xff1a;a instanceof Array ② 使用Array.isArray()进行判断&#xff1a;Array.isArray(a) 2. 手写一个简易的jQuery&#xff0c;考虑插件和扩展性&#xff1f; …

内网工具之LDP的使用

LDP 是微软自带的一款活动目录信息查询工具&#xff0c;在域控的 cmd 窗口执行 ldp 命令即可打开 LDP 工具。普通域成员主机默认是没有 LDP 工具的&#xff0c;可以自行上传ldp.exe 工具上去查询活动目录信息。不在域内的机器&#xff0c;也可以通过上传 ldp.exe 工具上去执行。…

tomcat--目录结构和文件组成

目录结构 目录说明bin服务启动&#xff0c;停止等相关程序和文件conf配置文件lib库目录logs日志记录webapps应用程序&#xff0c;应用部署目录workjsp编译后的结果文件&#xff0c;建议提前预热访问 /usr/local/apache-tomcat-8.5.100/work/Catalina/localhost/ROOT/org/apac…

c++string类型

概述 string类型是c的字符串类型&#xff0c;其继承自basic_string类。使用string需要导入头文件#include <string>,并且在命名空间std下。cstring是否是写时复制? (像Qt的string一样)? 经过自己的测试&#xff0c;推断&#xff0c;c的方式不是写时复制&#xff0c;其在…

PingCAP 戴涛:构建面向未来的金融核心系统

作者&#xff1a;戴涛 导读 近日&#xff0c;平凯星辰解决方案技术部总经理戴涛在 2024 数据技术嘉年华活动中&#xff0c;做了主题为“构建面向未来的金融核心系统”的分享&#xff0c;本文为戴涛演讲实录的全文。 文章分析了中国金融行业的发展趋势&#xff0c;并且基于这…

在 Mac OS 上使用 Homebrew 打造便捷的软件安装体验:apt-get install 就是brew install:

标题&#xff1a;在 Mac OS 上使用 Homebrew 打造便捷的软件安装体验 在 Mac OS 系统中&#xff0c;虽然不支持 apt-get install&#xff0c;但我们有幸拥有 Homebrew 这样出色的包管理器。它为我们在 Mac 上安装各种所需软件提供了极大的便利。 一、安装 Homebrew 要安装 Home…

算法提高之加成序列

算法提高之加成序列 核心思想&#xff1a;迭代加深 dfs 从上往下逐渐增大depth 这样下面没有用的方案就不用遍历了 #include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N 110;int n;int path[N];//当前求哪个位置…

PDF编辑阅读器PDF Expert for Mac v3.10.1中文激活版

PDF Expert for Mac是一款易于使用的 PDF 编辑器和注释器&#xff0c;专为 Mac 设备设计。它允许用户轻松查看、编辑、签名、注释和共享 PDF。该软件使用户能够向他们的 PDF 添加文本、图像、链接和形状&#xff0c;突出显示和标记文本&#xff0c;填写表格以及签署数字文档。它…

STL----resize

resize的作用 设置容器元素个数和初始值。 resize和reserve resize即改变容器元素个数&#xff0c;也改变容器容量。 reserve只改变容器容量&#xff0c;不改变容器元素个数。 reserve有什么用 reserve---存储&#xff0c;容量&#xff0c;保留。 1&#xff0c;设置容器容…

Python实现麦克风录音保存到wav

功能展示&#xff1a; 运行环境&#xff1a; Python: 3.10.4 64-bit 操作系统&#xff1a; 截图环境&#xff1a;win10 64-bit 视频录屏环境&#xff1a;win10 64-bit 功能说明&#xff1a; 点击界面开始按钮开始录音&#xff0c;点击停止按钮结束录音。 源码文件列表&…

十二生肖Midjourney绘画大挑战:释放你的创意火花

随着AI艺术逐渐进入大众视野&#xff0c;使用Midjourney绘制十二生肖不仅能够激发我们的想象力&#xff0c;还能让我们与传统文化进行一场新式的对话。在这里&#xff0c;我们会逐一提供给你创意满满的绘画提示词&#xff0c;让你的作品别具一格。而且&#xff0c;我们还精选了…