JavaFX拖动窗口会在监视器切换时移动下拉列表

时间:2019-08-05 09:23:10

标签: java javafx

我正在创建JavaFX应用程序,并且primaryStage是未修饰的,因此我实现了自己的拖放/关闭和最小化功能。一切正常,直到我将窗口拖到另一个监视器(更大)上。然后,拖动时窗口偶尔会侧向跳跃。 每当我在新显示器上拖动并且窗口不跳时,下拉列表就会被替换-就像只有下拉列表而不打开窗口一样。 因为了解我的问题可能并不容易,所以我做了一个gif。请原谅质量不佳,giphy和imgur都会严重降低其质量:https://giphy.com/embed/YmVmTiUxYVt1GTwyI2

这很可能是由于MousePressed-Event仅将偏移量设置了一次。在MouseDragged中再次调用它不起作用。

拖动窗口的代码:

menuBar.addEventFilter(MouseEvent.MOUSE_PRESSED, e -> {
            xOffset = root.getScene().getWindow().getX() - e.getScreenX();
            yOffset = root.getScene().getWindow().getY() - e.getScreenY();
        });
        menuBar.addEventFilter(MouseEvent.MOUSE_DRAGGED, e -> {

            root.getScene().getWindow().setX(e.getScreenX() + xOffset);
            root.getScene().getWindow().setY(e.getScreenY() + yOffset);

        });

当拖动到新的监视器上时,窗口及其元素不应跳转。 是否有人对在监视器上拖动时如何检测监视开关/防止窗口跳动有想法? 感谢您的时间和帮助!

0 个答案:

没有答案