我正在使用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 */
}
};
有人能清楚我,我做错了什么或误解了吗? 谢谢!