当前位置: 首页 > 面试题库 >

获取节点在JavaFX中的真实位置

齐向笛
2023-03-14
问题内容

在JavaFX中获取节点绝对位置的最佳方法是什么?

假设我们在窗格(Hbox,Stackpane或任何其他窗格)中有一个节点,并且它本身可能有一个父节点。

我想获取该节点的绝对位置,并在另一个窗格中使用它。


问题答案:

这取决于您所说的“绝对”的含义。节点有一个坐标系,父节点有一个坐标系,父节点有一个坐标系,依此类推,最终有一个坐标系Scene和一个屏幕坐标系(可能是物理显示设备的集合)。

您可能想要相对于的坐标Scene,在这种情况下,您可以

Bounds boundsInScene = node.localToScene(node.getBoundsInLocal());

或相对于屏幕的坐标:

Bounds boundsInScreen = node.localToScreen(node.getBoundsInLocal());

在任一种情况下,所得Bounds物体具有getMinX()getMinY()getMaxX()getMaxY()getWidth()getHeight()方法。



 类似资料:
  • 我正在编写一个javafx UI,希望从单击的MenuItem的eventHandler中获取contextMenu的所有者节点。 我的代码: 我想做的是获取一个对选中了上下文菜单的选项卡的引用。 我能够通过MenuItem eventHandler的handle(ActionEvent e)方法中的以下代码获得对MenuItem ContextMenu的引用: 我的想法是在菜单上使用Contex

  • 问题内容: 单击按钮后,它会更改其位置。 但是当我移动鼠标时,按钮又回到场景的中心,为什么呢? 我有以下代码: 问题答案: 建议的方法 对于您的特定代码段,也许使用Pane而不是StackPane是最好的方法。 为什么您的代码无法满足您的要求 如果要手动设置布局值,请不要使用会自动为您设置布局值的布局窗格(例如StackPane)。如果使用布局窗格,则下次布局窗格执行布局传递时(例如,调整其大小或

  • 在C#中,我发现了一个非常可爱的方法,它允许您从指定的控件中获取所有后代及其所有后代。 我正在寻找一种类似的JavaFX方法。 我看到<code>Parent</code>类是我想要使用的,因为它是派生所有节点类的子类。 这就是我到目前为止所拥有的(我还没有在谷歌上找到任何像“JavaFX从场景中获取所有节点”这样的搜索): 那么,如何判断N是否是父级(或从父级扩展)?我这样做对吗?它似乎不起作用

  • 问题内容: 在C#中,我发现了一种非常可爱的方法,该方法使您可以从指定控件中获取所有后代和所有THEIR后代。 我正在寻找JavaFX的类似方法。 我看到了我要使用的类,因为它是派生所有带有孩子的Node类的类。 到目前为止,这是我所拥有的(并且我还没有在Google上通过“ JavaFX从场景中获取所有节点”之类的搜索真正找到任何东西): 那么,如何确定N是否是父母(或从父母继承)呢?我说的对吗

  • 我想得到Cooja模拟器中每个节点的位置(x和y坐标)。共有30个节点,类型为“sky mote”。目标是为每个节点构建一个由(ID\u node x\u coordinate y\u coordinate)组成的表。 首先,我试图通过在脚本模拟编辑器中编写以下代码来获取每个节点的x坐标: 但我得到了这样的结果: 所有这些数字都是ID为2的特定节点的x坐标。请问,你能帮我得到库亚所有节点的x和y坐

  • 如何在JavaFX中获取节点的高度或首选高度,我有3个,我想将节点添加到最自由的面板中,例如: 在本例中,最自由的是,我使用此方法计算最自由的窗格: 此方法仅在我同时添加1个元素时有效。但如果我当时添加更多元素: 方法返回相同的索引。这是因为新节点在本地还没有高度。 因此这行: 将返回带有新节点的。 有人知道如何获得节点的高度吗? Node的扩展 方法addElement()在myPane: 假设