richtige weg um einen knoten durch ziehen in javafx 2 zu verschieben?

Ich konvertiere eine Swing / Graphics2D-App mit viel benutzerdefiniertem Malen in eine JavaFX2-App. Obwohl ich die neue API absolut liebe, habe ich anscheinend ein Leistungsproblem beim Zeichnen einer Ellipse, die ich unterhalb des Mauszeigers zeichnen möchte, wo immer die Maus bewegt wird. Wenn ich meine Maus gleichmäßig und nicht lächerlich schnell bewege, bemerke ich, dass die Ellipse immer ein paar Zentimeter hinter der Mausspur gezeichnet ist und erst aufholt, wenn ich den Cursor nicht mehr bewege. Dies in einem Szenegraphen mit nur einer Handvoll Knoten. In meiner Swing App hatte ich dieses Problem nicht.

Ich frage mich, ob dies der richtige Ansatz ist, um eine Form zu zeichnen, in der sich der Mauszeiger befindet.

import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.SceneBuilder;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Ellipse;
import javafx.scene.shape.EllipseBuilder;
import javafx.stage.Stage;

public class TestApp extends Application {
public static void main(String[] args) {
    launch(args);
}

@Override
public void start(Stage primaryStage) throws Exception {
    Pane p = new Pane();

    final Ellipse ellipse = EllipseBuilder.create().radiusX(10).radiusY(10).fill(Color.RED).build();
    p.getChildren().add(ellipse);

    p.setOnMouseMoved(new EventHandler<MouseEvent>() {
        public void handle(MouseEvent event) {
            ellipse.setCenterX(event.getX());
            ellipse.setCenterY(event.getY());
        }
    });

    Scene scene = SceneBuilder.create().root(p).width(1024d).height(768d).build();
    primaryStage.setScene(scene);

    primaryStage.show();
}
}

Kleines Update: Ich habe ein Upgrade auf JavaFX 2.2 und Java7u6 (unter Windows 7 64-Bit) durchgeführt, aber es scheint keinen Unterschied zu machen.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage