setTranslate()不能在JavaFX

时间:2018-04-23 07:45:53

标签: javafx translation transitions

我正在使用GUI,我需要在GUI的精确部分中移动对象。主窗口分成几个部分,我希望能够在其中一个部分中移动物体 我尝试编写简单的代码,我只需在 root Group中移动简单矩形,以了解转换转换的工作原理。一切顺利。当我想在我的GUI(在嵌套Group之一)中做同样的事情时,它没有工作。
它表明,新的翻译被设置为对象,但是对象根本没有移动 我做了完全相同的事情,除了Groupt不是根。

代码:

/* imports, main() */ 

public void start(Stage primaryStage) throws Exception {
    Button tmpButton = new Button("Just fill the space");

    Rectangle rect = new Rectangle(0, 0, 20, 20);
    rect.setOnMousePressed(mousePressedEvent);
    rect.setOnMouseDragged(mouseDraggedEvent);

    Group movablePlace = new Group(); 
    movablePlace.getChildren().add(rect); 

    VBox root = new Root();
    root.geChildren().addAll(tmpButton, movablePlace);


    primaryStage.setScene(new Scene(root, 500, 400));
    primaryStage.show();
}

EventHandler<MouseEvent> mousePressedEvent = new EventHandler<MouseEvent>() {    
    /* getting coordinates works fine */
};

EventHandler<MouseEvent> mouseDraggedEvent = new EventHandler<MouseEvent>() {         
    public void handle(MouseEvent event) {
        /* actualize new coordinates and offset - works fine */

        ((Rectangle)event.getSource).setTranslateX(newTranslationX);
        ((Rectangle)event.getSource).setTranslateY(newTranslationY);   
        /* translations of rectangle are set correctly, but it doesn't move */
    }
};  

有人能清楚我,我做错了什么或误解了吗? 谢谢!

0 个答案:

没有答案