首页
学习
活动
专区
工具
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个子节点) 从子节点中查找与有界框重要值最低的标记相交的节点

    53040

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

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

    2.5K10

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

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

    1.6K20

    外边距合并规则

    padding/margin百分比的计算方式 background与padding/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属性值决定)。

    90290

    BubbleRob tutorial 遇到的问题

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

    1.8K10

    手拉手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解除父类对

    22400

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

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

    3.7K10

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

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

    64610

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

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

    79910

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

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

    1.6K30

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

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

    850160

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

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

    1.5K80

    TPAMI 2024 | 用于目标检测的CenterNet++

    我们假设如果预测的边界框与真实框具有较高的交并比(IoU),那么预测边界框中心区域的中心关键点为同一类别的概率很高,反之亦然。...定量结果表明,即使在低IoU阈值下,错误边界框也占边界框总数的很大一部分,例如,CornerNet在IoU为0.05时获得32.7%的AF分数。...在基于回归的预测方法中,为了解耦左上角和右下角,我们沿着几何中心将真实框分成四个子真实框,并选择左上角和右下角子真实框来监督回归过程。...我们应用常见的无锚点检测方法来训练网络预测子边界框(例如FCOS[56]和RepPoints[8])。...此外,我们强调子边界框的回归精度高于完整边界框的精度,因为表I显示像FCOS[56]这样的无锚点方法在长距离回归上精度较低,而我们的子边界框有效地将回归距离减半。

    11410
    领券