首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaFX -将子边界框与父边界框分隔开

基础概念

JavaFX 是一个用于构建桌面应用程序的图形用户界面(GUI)工具包。它提供了丰富的控件和布局管理器,使得开发者可以轻松地创建复杂的用户界面。在 JavaFX 中,边界框(Bounds)是指一个控件所占用的矩形区域,包括其内容、填充和边框。

相关优势

  1. 丰富的控件:JavaFX 提供了大量的控件,如按钮、文本框、列表视图等,可以满足各种应用需求。
  2. 灵活的布局管理:JavaFX 提供了多种布局管理器,如 BorderPaneGridPaneVBox 等,可以方便地组织和管理控件的位置和大小。
  3. 强大的视觉效果:JavaFX 支持各种视觉效果,如阴影、渐变、动画等,可以提升应用程序的用户体验。
  4. 跨平台支持:JavaFX 可以在多个平台上运行,包括 Windows、macOS 和 Linux。

类型

在 JavaFX 中,边界框可以分为以下几种类型:

  1. 内容边界框(Content Bounds):这是控件内容的实际大小,不包括填充和边框。
  2. 填充边界框(Padding Bounds):这是内容边界框加上填充后的大小。
  3. 边框边界框(Border Bounds):这是填充边界框加上边框后的大小。
  4. 整体边界框(Overall Bounds):这是控件的最终大小,包括所有填充和边框。

应用场景

JavaFX 的边界框管理在以下场景中非常有用:

  1. 布局设计:在设计复杂的用户界面时,需要精确控制各个控件的位置和大小。
  2. 碰撞检测:在开发游戏或交互式应用程序时,需要进行控件之间的碰撞检测。
  3. 动画效果:在实现动画效果时,需要精确控制控件的移动和变形。

问题及解决方法

问题:如何将子边界框与父边界框分隔开?

在 JavaFX 中,可以通过设置控件的 layoutXlayoutYprefWidthprefHeight 属性来控制其边界框的位置和大小。以下是一个示例代码,展示如何将子控件的边界框与父控件的边界框分隔开:

代码语言:txt
复制
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;

public class BoundsExample extends Application {
    @Override
    public void start(Stage primaryStage) {
        BorderPane root = new BorderPane();
        
        Button button = new Button("Click Me");
        button.setLayoutX(20); // 设置按钮的 X 坐标
        button.setLayoutY(20); // 设置按钮的 Y 坐标
        button.setPrefWidth(100); // 设置按钮的宽度
        button.setPrefHeight(50); // 设置按钮的高度
        
        root.getChildren().add(button);
        
        Scene scene = new Scene(root, 400, 300);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

在这个示例中,我们创建了一个 BorderPane 作为父控件,并在其中添加了一个 Button 作为子控件。通过设置 buttonlayoutXlayoutYprefWidthprefHeight 属性,我们可以精确控制按钮的边界框位置和大小,从而实现与父边界框的分隔。

参考链接

希望这些信息对你有所帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

CSS--外边距合并的问题

请看下图: image.png 当一个元素包含在另一个元素中时(假设没有内边距或边框把外边距分隔开),它们的上和/或下外边距也会发生合并。...image.png 注释: 只有普通文档流中块的垂直外边距才会发生外边距合并。行内、浮动或绝对定位之间的外边距不会合并。在css2.1中,水平的margin不会被折叠。...如果元素的margin和它的元素的margin-top折叠在一起,盒模型border-top的边界定义和它的元素相同。...注意,那些已经被折叠覆盖的元素的位置对其他已经被折叠的元素的位置没有任何影响;只有在对这些元素的元素定位时,border-top边界位置才是必需的。 根元素的垂直margin不会被折叠。...当一个元素拥有的margin折叠了,并且它使用了清除操作,那么它的margin-top会和紧随其后的兄弟元素的相邻margin折叠,但结果是它的margin无法和其块级元素的margin-bottom

1.3K20

垂直属性

什么是行内元素的行盒,在另一篇文章再讲 块元素的元素若也是块元素时,若元素并没有设置边界属性--上下边框或者上下内边距,则元素的高度为最上层元素的上边框到最底层元素的       的下边框之间的距离...块元素的元素若也是块元素时,若元素设置边界属性,则元素的高度为最上层元素的上外边距到最底层元素的下边外边距之间的距离。   ...其中第二个规则有些类似外边框叠加,确实,给元素设置边界属性可以有效的防止元素和元素外边框的叠加。 行内元素(非替换元素) 对行内元素而言,显示设置height或者外边距是没有效果的。...而行内元素的每一行都有一个行,该行的高度值来源于这一行中最高的行框上边框最低行的下边框的差值。行的高度是该行文本元素最终占有的高度。   ...vertical-align属性的值为百数时,它的参考对象是该元素的line-height值,而不是元素的line-height值。

1.1K70
  • 【热点盘点】iOS 8增强的自动布局功能

    自动布局则充分利用了UI控件之间的父子关系、兄弟关系,自动布局可控制节点控件的左边界、右边界、上边界、下边界容器的左边界、右边界、上边界、下边界对齐或保持指定距离,与此同时,还可设置节点控件的宽度占容器宽度多大比例...,节点控件的高度占容器高度多大比例;对于兄弟关系的UI控件而言,自动布局可控制兄弟UI控件的左边界、右边界、上边界、下边界对齐,也可控制兄弟UI控件之间的高度比例、宽度比例,还可控制它们之间的间距…...单击第一个按钮即可弹出图中的浮动,该浮动Align菜单包含的菜单项完全一样,只是通过该按钮可以同时添加多个约束。...点击InterfaceBuilder右下角的第二个按钮,打开的浮动Pin菜单包含的菜单项完全一样,只是可以同时添加多个约束。...InterfaceBuilder右下角的第三个按钮对应的浮动Resolve Auto Layout Issues菜单包含的菜单项完全一样。

    1.2K10

    Booking.com如何在毫秒内搜索数百万个地点

    在地图上查找 当用户打开地图查找房产时,会出现一个有边界,此时需要在边框内展示感兴趣的点,这样Booking才能在该中快速查找最感兴趣的点。...当处理地图数据时,节点表示地图上的某些区域,其4个节点分别表示区域的西北、东北、西南和东南四个象限。...对于Booking,每个节点表示地图上的特定有界,用户可以通过在地图上放大或平移来修改可见的有界。节点的每个子节点将西北、东北、西南和东南边界保持在节点的边界框内。...首先从根节点开始查找选择的有界交叉的标记,如果需要更多的标记,则会继续查找有界交叉的节点,并将其添加到队列中。使用先进先出的顺序处理队列中的节点(查找和有界交叉的标记)。...,并将其放到节点中(越靠近根节点的节点,其标记的重要值越高) 如果该节点没有节点,则需要创建节点(节点的有界分为4个有界,即4个节点) 从子节点中查找有界重要值最低的标记相交的节点

    52440

    从box-sizing:border-box属性入手,来了解盒模型

    背景:先声明一下运用的场景,假如项目布局使用的是自适应的布局方式,div给出的宽度是百比的形式,即占窗口宽度的50%,但边界和内边距是用像素来表示的怎么办?...内容是框内容显示的区域--包括框内的文本内容,以及表示镶嵌元素的其他;             ②padding表示一个CSS框内边距--这一层位于内容的外边缘边界的内边缘之间;            ...它的行为和边界差不多,但是并不改变的尺寸(更准确的说,轮廓被勾画于在边界之外,外边距区域之内)。            ...: margin:0 auto;                 那么最终呈现的效果是:当容器在最小和最大宽度限制内时,它将填满整个视口宽度;当容器超过1280px宽度时,布局保持在1280px宽...而max-width:100%限制了图像的宽度使它的最大宽度容器的宽度相等。因此,当容器宽度缩小到小于图像的宽度时,图像会一起缩小。

    1.5K20

    从box-sizing:border-box属性入手,来了解盒模型

    背景:先声明一下运用的场景,假如项目布局使用的是自适应的布局方式,div给出的宽度是百比的形式,即占窗口宽度的50%,但边界和内边距是用像素来表示的怎么办?...内容是框内容显示的区域–包括框内的文本内容,以及表示镶嵌元素的其他; ②padding表示一个CSS框内边距–这一层位于内容的外边缘边界的内边缘之间;...它的行为和边界差不多,但是并不改变的尺寸(更准确的说,轮廓被勾画于在边界之外,外边距区域之内)。...; 那么最终呈现的效果是:当容器在最小和最大宽度限制内时,它将填满整个视口宽度;当容器超过1280px宽度时,布局保持在1280px宽,并开始在可用空间内居中。...而max-width:100%限制了图像的宽度使它的最大宽度容器的宽度相等。因此,当容器宽度缩小到小于图像的宽度时,图像会一起缩小。

    2K10

    外边距合并规则

    padding/margin百比的计算方式 backgroundpadding/margin/border margin负值 margin合并 盒模型是视觉格式化模型中的基础单元,是CSS布局模型中必不可少的一部...都属于流内(in-flow)块级盒,处于同一个块格式化上下文 没有行(line box),空隙,内边距和边框把它们隔开 都属于垂直相邻边界(vertically-adjacent box edges...另一方面,行不是纯粹的抽象定义,它具有宽度和高度,用于决定行布局 相邻外边距之间“没有行”可以简单理解为没有行内元素把它们隔开 垂直相邻边界 下列4种场景满足外边距都属于垂直相邻边界的情况: 盒的上外边距与其第一个流内...父子:幺儿的下外边距元素的下外边距 自身:0高“真空”元素的上外边距下外边距 P.S.这里的“真空”是指——把薯片抽成真空。...就是说这两个外边距没被“墙”隔开,“墙”3种: 种族:双方必须都是流内块级盒 信仰:处于同一个块格式化上下文 地域:二者之间没有行(line box),空隙,内边距和边框 到这里,“相邻”已经很清楚了

    1.4K30

    HTML-CSS基础学习

    :foces 样式添加到被选中的元素 :hover 当鼠标悬浮这元素上方时,向元素添加样式 :link 样式添加到未访问的元素 :visited 样式添加到已被访问过的元素 :first-child...样式添加到元素的第一个元素 :lang 设置元素使用特殊语言的内容的样式 p标签: p:empty 选择没有元素的每个p元素 p:ratget 选择当前活动的p元素 :not(p)...,length 文字大小,percentage 百比表示字号 font-family 文本的字体,多种字体逗号隔开,字体多单词双引号括起来 font-stretch 文字是否横向拉伸变形,normal...auto表示无特殊定位;自定义数值:百比或长度,只有position取值为absolute或relative时生效。...right 对象参照相对右边界向左偏移的位置,auto类似top bottom 对象参照相对上边界向左偏移的位置,auto类似top left 对象参照相对左边界向左偏移的位置,auto类似top

    4.8K30

    CSS魔法堂:不得不说的Containing Block

    找啊找啊找朋友,找到一个好CB 对于display:static/relative的元素  它的CB最近一个block container(block box/inline box/table cell...若block container不是inline box,则其CB这个block container(block box/inline box/table cell)的padding box重叠。...如果 'direction' 是 'ltr',包含块的顶、左边是祖先元素生成的第一个的顶、左内边距边界(padding edges) ,右、下边是祖先元素生成的最后一个的右、下内边距边界(padding...如果 'direction' 是 'rtl',包含块的顶、右边是祖先元素生成的第一个的顶、右内边距边界 (padding edges) ,左、下边是祖先元素生成的最后一个的左、下内边距边界 (padding...正常情况:若box尺寸>containing block尺寸,则box溢出CB(溢出后的显示效果由overflow属性值决定)。

    89690

    BubbleRob tutorial 遇到的问题

    保证这一点的一种方法是创建一个模型(如上所述),并确保访问模型中的对象的脚本模型中包含的对象相关联。最好的方法是一个脚本(也可能有第二个脚本)模型的基础相关联。...02 — Object common properties 对象通用属性对话是场景对象属性对话的一部,对话位于[菜单栏—>工具—>场景对象属性]。...Ignored by model bounding box模型包围忽略:当被选中时,对象是模型的一部,那么模型包围(即模型选择包围)将不包含该对象。...此外,当这样一个对象被选中时,选择边界显示为粗点画线,包括整个模型。 Edit model properties编辑模型属性:允许打开模型对话。...Required match values for parent对象的必需匹配值:该对象可以附加到另一个对象(即成为另一个对象的对象),但是只有当列出的对象的必需匹配值之一与它的新对象的对象的必需匹配值之一匹配时才可以

    1.7K10

    一文带你学会 UML--用例图

    系统边界——系统边界是指系统系统之间的界限。用方形+系统名称表示。 系统边界是指系统系统之间的界限。通常所说的系统可以认为是由一系列相互作用的元素形成的具有特定功能的有机整体。...系统同时又是相对的,一个系统本身又可以是另一个更大系统的组成部分,因此,系统系统之间需要使用系统边界进行区分。...泛化 当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象成为用例,其他的用例作为泛化关系中的用例。...在用例的泛化关系中,用例是用例的一种特殊形式,用例继承了用例所有的结构、行为和关系。 泛化关系一般很少使用。...包含 包含关系指用例可以简单地包含其他用例具有的行为,并把它所包含的用例行为作为自身行为的一部

    3.3K10

    手拉手JavaFX布局

    它在一行上排列连续的组件,并且如果当前行填充满了以后,则自动组件向下推到一行public class FlowPanedemo extends Application { @Override...缩写:margin: 上 右 下 左;填充填充:(百数、em、px)padding-toppadding-bottompadding-leftpadding-right缩写:padding: 上 右...BorderPane布局、HyperLink超级链接、Hyper超级、Insets插入、BorderPane布局顶部,底部,左,右或中心区域中的节点。...左边界区域和右边界区域占据顶部和底部边界之间的可用垂直空间。默认情况下,所有边界区域尊重子节点的首选宽度和高度。...b1, 10.0);anchorPane.setBottomAnchor(b2, 10.0);//设置内边距anchorPane.setPadding(new Insets(10));//false解除类对

    21400

    【面试题解】什么是浮动?有什么应用?有什么影响?如何清除浮动?

    浮动布局 什么是浮动布局 所谓 css 浮动就是浮动元素会脱离文档的普通流,根据 float 的值向左或向右移动,直到它的外边界碰到元素的内边界或另一个浮动元素的外边界为止。...原因是浮动旁边的行被缩短,从而给浮动留出空间,行围绕浮动。...元素高度塌陷 元素的高度默认是由元素的高度撑起来的,所以我们的元素 float-container 的高度应该是五个box的高度加起来,也就是 320px 。...原因是当元素脱离标准文档流以后,元素的高度就没有了,从而造成元素高度塌陷现象。 影响了兄弟元素 因为浮动元素脱离了标准文档流,所以其他元素就会占据浮动元素原来的位置,影响布局。...height: 0; display: block; clear: both; } 利用BFC 我们利用 BFC 的区域不会与 float 重叠;计算 BFC 的高度时,浮动元素也參计算的特性

    63410

    刷剧不忘学习:用Faster R-CNN定位并识别辛普森一家中多个人物

    完善数据集 第一部中所使用的数据集还存在一定问题,因此我们仍需要为训练集中每个人物确定对应的边界。 我们可以通过点击鼠标和matplotlib库,为每张图片标记出边界。...△ 确定每个图片中人物的边界坐标 我们不仅保存了图片形式的训练集,还将边界坐标和对应类别保存为一个文本文件: ? 对于每个人物,要确定该人物边界的左上角和右下角坐标。 ?...实际上,该模型确定出的人物边界过大,所以当图片中有多个人物时,边界可能会重叠。...当然,第一部中只对训练集中人物图片分类的convnet网络相比,该模型的正确率有一定的降低。...改进方向 接下来,我继续标注相关图片来扩大训练集,如果有新方法会继续进行更新。

    846160

    【面试题解】CSS布局,定位布局,浮动布局,BFC,IFC,FFC,GFC

    浮动布局 什么是浮动布局: 所谓 css 浮动就是浮动元素会脱离文档的普通流,根据 float 的值向左或向右移动,直到它的外边界碰到元素的内边界或另一个浮动元素的外边界为止。...如果定位元素的元素也设置了 z-index 属性,那么子元素的 z-index 属性失效,并且最终是根据元素的 z-index 属性来判断覆盖关系。...反之也如此; 计算 BFC 的高度时,浮动元素也參计算。...; 当 IFC 中盒子的总宽度少于包含它们的行时,其水平渲染规则由 text-align 属性值来决定; 当一个行内元素超过元素的宽度时,它会被分割成多个盒子,这些盒子分布在多个行中。...如果子元素未设置强制换行的情况下,行将不可被分割,将会溢出元素。

    1.6K30

    成熟的目标检测,也该自己学习数据增强策略达到SOTA了

    研究人员使用的变换策略包括一些可以在整张图像中使用,但是不会影响边界位置的方法(例如,从图像分类中借鉴的色彩变换策略)、也有通过改变边界位置从而影响整个图像的策略(例如,翻转或裁剪图像),以及一些只对边界框内的目标产生影响的变换策略...每个增强策略都由三元组构成,包括操作、应用概率以及大小度量。为了确保边界增强策略保持一致,可以调整边界位置。...边界操作:只改变边界标注内的像素内容(例如,只在 BBox 内均衡化、只在 BBox 内旋转、只在 BBox 内翻转)。...如下表 2 所示,为了更好地理解性能增益都来自哪些方面,研究者数据增强策略拆为三部:色彩操作、几何操作和 bbox-only 操作。 ?...这使得 mAP50 提升了 2.7 个百点。 ? 表 4:学习到的增强策略迁移到其他目标检测数据集上。

    79110

    初探HTML之CSS篇(属性)

    设置文字间距 text-decoration设置文字修饰线 none 主要用于去除 a 标签的下划线 underline 下划线 overline 上划线 line-through 删除线 注意:如果一个元素放置另一个元素...(元素)内,给元素设置 text-decoration 会发现元素的text-decoration无法清除干净 解决方案: 1、使用绝对定位 position: ansolute 2、设置浮动...cellpadding 设置数据线的距离 background-color 设置表格的背景颜色 background-url 设置表格的背景图片 colspan 横向合并单元格 rowspan 纵向合并单元格...right 设置定位元素右外边距边界与其包含块右边界之间的偏移 left 设置定位元素左外边距边界与其包含块左边界之间的偏移 top 设置定位元素上外边距边界与其包含块上边界之间的偏移 overflow...规定当内容溢出元素时发生的事情 cursor 规定要显示的光标的类型 float 规定是否应该浮动 display 规定元素应该生成的的类型 vertical-align 设置元素的垂直对齐方式

    2K30

    学界 | 何恺明等人提出新型半监督实例分割方法:学习分割Every Thing

    研究者按照下列方式构建部分监督的实例分割任务:(1)给定一个类别集,其中一小部具备实例掩码标注,其他类别仅具备边界标注;(2)实例分割算法利用该数据构建一个能够分割该集合中所有目标类别实例的模型。...为了解决部分监督实例分割问题,研究者提出了一种基于 Mask R-CNN [15] 的新型迁移学习方法,Mask R-CNN 完美适应研究者的任务,它将实例分割问题分解为边界目标检测和掩码预测的任务...这些任务由联合训练的专门网络「heads」来处理。该方法背后的理念是经过训练后,边界头部的参数对每个物体类别的嵌入进行编码,该嵌入表征使类别的视觉信息迁移至部分监督的掩码头部。...具体来说, COCO 类别分割成带有掩码标注的子集和系统只能获取边界标注的余子集。由于 COCO 数据集仅包含少量语义分割类别(80 个),因此定量评估是精确可信的。...绿色 COCO 重叠的 80 个类别(集 A 有掩码训练数据),红色有 COCO 中没有的 2920 个类别(集 B 没有掩码训练数据)。

    1.5K80
    领券