如何围绕事件制作圈子?

And*_*dan 4 javafx-2

我对javafx很新,所以我想在这里学习,所以请合理,不要忘记我的问题,我真的很感激任何帮助,谢谢!

我想知道如何移动一个物体,让我们说这个圈子在不同的事件上,如按键或鼠标点击,鼠标移动,等等.

Circle circle = new Circle();
circle.setCenterX(100.0f);
circle.setCenterY(100.0f);
circle.setRadius(50.0f);
Run Code Online (Sandbox Code Playgroud)

我是否需要使用我在javafx网站教程中看到的KeyFrame,或者这是如何工作的?

我不会在这里问这个问题,如果我没有感到如此迷茫,说实话.所以要明确这一点:通过使用事件来移动我创建的对象的代码是什么?

编辑:通过移动它我的意思是,按向上键,它向上移动几个像素,也许,用另一个键转换它,或点击场景中的某个地方,让它立即移动到那里或以一定的速度在那里旅行.我不需要像html5画布那样重绘它,我希望,对吧?

jew*_*sea 17

我不需要像html5画布那样重绘它,我希望,对吧?

如果您使用标准JavaFX场景图而不是JavaFX画布,则不是这样.

我想知道如何移动一个物体,让我们说这个圈子在不同的事件上,如按键或鼠标点击,鼠标移动,等等

移动Shape有三种方法:

  1. 您可以调整形状的几何形状(例如圆的centerX/centerY属性).
  2. 您可以调整形状的布局(例如,它的layoutX/layoutY属性).
  3. 您可以调整形状的平移(例如,它的translateX/translateY属性).

您可以将布局视为对象的起始位置; 即它通常应该在它的父组的上下文中.您可以将它的转换变换视为对象的临时位置(通常在对象进行动画处理时使用).

如果您使用的是布局窗格,例如VBoxTilePane,则布局窗格将处理为您设置子节点的布局坐标.如果您使用的是简单或普通窗格区域,则您负责为子节点设置正确的布局值.

要侦听事件,请在节点场景上设置事件处理程序.

这是一个小样本应用程序,它演示了上述内容.它将要移动Group的对象置于a内,并Group在响应各种事件时修改对象的位置.

movementevents