如何围绕事件制作圈子?

时间:2013-01-18 13:09:13

标签: javafx-2

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

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

Circle circle = new Circle();
circle.setCenterX(100.0f);
circle.setCenterY(100.0f);
circle.setRadius(50.0f);

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

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

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

1 个答案:

答案 0 :(得分:16)

  

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

如果您使用标准JavaFX scene graph而不是JavaFX canvas,则不会。

  

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

有三种方法可以移动Shape

  1. 您可以调整形状的几何图形(例如圆的centerX / centerY属性)。
  2. 您可以调整形状的布局(例如layoutX / layoutY属性)。
  3. 您可以调整形状的翻译(例如translateX / translateY属性)。
  4. 您可以将布局视为对象的起始位置;即它通常应该在它的父组的上下文中。您可以将它的转换变换视为对象的临时位置(通常在对象进行动画处理时使用)。

    如果您使用的是布局窗格,例如VBoxTilePane,则布局窗格将处理为您设置子节点的布局坐标。如果您使用简单的Group或普通PaneRegion,那么您有责任为子节点设置正确的布局值。

    要收听事件,请在event handlersNodes上设置Scenes

    这是展示上述内容的small sample app。它将要移动的对象置于Group内,并在Group内修改对象的位置以响应各种事件。

    movementevents

相关问题