繁体   English   中英

无法在JavaFX中移动矩形?

[英]Can't move a rectangle in JavaFX?

我似乎无法在JavaFX中移动矩形对象。 我已经将矩形放置在堆栈窗格中,但是每当更改矩形的坐标时,矩形就不会移动(即使更改初始化的坐标)。 所以,

Rectangle rect = new Rectangle(150,150,75,75);

将位于堆栈窗格的中心,以及

Rectangle rect = new Rectangle(2043,136,75,75);

每当我使用

rect.setX();

矩形完全不移动。 我知道我缺少真正简单的东西,只是无法弄清楚。 我不想使用过渡,因为我的目标是简单地将矩形按箭头键方向移动几个像素。 那我到底在做什么错?

如果要手动指定布局坐标(例如Rectangle的x,y坐标),请使用其他容器类型(例如Pane )。

背景

StackPane是托管布局窗格-它控制您放置在其中的项目的布局(默认情况下,将项目居中放在堆栈中)。 因此,给定矩形的坐标并不重要,当将其放置在StackPane中时,布局管理器将移动矩形,使其位于堆栈的中心。

JavaFX有两个用于定位的概念,一个是布局坐标 ,另一个是平移增量 ,它们被添加到布局坐标中。 TranslateTransitions通过修改翻译增量来工作。 翻译是为了动画和临时移动事物。 平移与布局无关,并且不影响布局值,因此您可以在StackPane中放置某些内容并对其应用TranslateTransition,它仍然会移动,但会从堆栈的中心移动,因为这是初始布局位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM