1
我实现了一个事件处理它获取鼠标的窗口拖动得到MouseEventHandle:的JavaFX 8.0 - 我怎样才能在标题栏
public void mouseEventHandler(){
final Delta dragDelta = new Delta();
view.getScene().setOnMousePressed(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent mouseEvent) {
dragDelta.x = mainStage.getX() - mouseEvent.getScreenX();
dragDelta.y = mainStage.getY() - mouseEvent.getScreenY();
}
});
view.getScene().setOnMouseDragged(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent mouseEvent) {
mainStage.setX(mouseEvent.getScreenX() + dragDelta.x);
mainStage.setY(mouseEvent.getScreenY() + dragDelta.y);
stage.setX(mainStage.getX());
stage.setY(mainStage.getY() + view.getScene().getHeight() + 25);
}
});
}
我有两个阶段:主舞台和舞台,这是上瘾到mainStage的坐标。我的问题是,如果我点击mainStage的窗口并拖动它,舞台只会移动。但如果点击窗口的标题栏进行删除,它将不会移动。 如何获得标题栏的MouseEvent?
这里是show()方法,可以让你了解成瘾:
public void show(Stage mainStage, MenuPresenter menuPresenter){
this.model = new Model();
this.view = new GameView(this.model);
this.chatWatchView = new ChatWatchView();
this.score = this.model.getScore();
this.menuPresenter = menuPresenter;
this.mainStage = mainStage;
mainStage.setScene(view.getScene());
mainStage.centerOnScreen();
stage = new Stage();
stage.setScene(chatWatchView.getScene());
stage.initStyle(StageStyle.UNDECORATED);
stage.setX(mainStage.getX());
stage.setY(mainStage.getY() + view.getScene().getHeight() + 25);
stage.show();
mainStage.show();
startTimeline();
activateEventHandler();
mouseEventHandler();
//view.setScore("Score: " + model.getScore());
}