如何调整Javafx未装饰阶段的大小?

如何调整Javafx未装饰阶段的大小?,javafx,fxml,Javafx,Fxml,我是JavaFX技术的新手,目前我正在开发JavaFX应用程序,其中有一个未装饰的阶段,我可以使用下面的代码在屏幕上移动它,但我无法从右下角调整此窗口的大小,有人能给我建议解决方案吗 public void loadPanel(final Stage stage) { myPane.setOnMousePressed(new EventHandler<MouseEvent>() { @Override public v

我是JavaFX技术的新手,目前我正在开发JavaFX应用程序,其中有一个未装饰的阶段,我可以使用下面的代码在屏幕上移动它,但我无法从右下角调整此窗口的大小,有人能给我建议解决方案吗

public void loadPanel(final Stage stage) {

        myPane.setOnMousePressed(new EventHandler<MouseEvent>() {
            @Override
            public void handle(MouseEvent event) {
                xOffset = event.getSceneX();
                yOffset = event.getSceneY();
            }
        });
        myPane.setOnMouseDragged(new EventHandler<MouseEvent>() {
            @Override
            public void handle(MouseEvent event) {
                stage.setX(event.getScreenX() - xOffset);
                stage.setY(event.getScreenY() - yOffset);
            }
        });


        this.stage = stage;
        this.stage.initStyle(StageStyle.UNDECORATED);
        this.stage.setScene(scene);
        this.stage.show();
    }

您可以将舞台设置为静态的公共舞台,并使用此代码,并根据您的代码进行自定义:

stage1.setWidth(Your double value);
stage1.setHeight(Your double value); 

您可以将舞台设置为静态的公共舞台,并使用此代码,并根据您的代码进行自定义:

stage1.setWidth(Your double value);
stage1.setHeight(Your double value); 

若你们只想在右下角调整舞台的大小,你们首先需要一个If语句来检查你们的鼠标是否在那个里。除此之外,您还需要在dragFunction中区分情况是否如此。如果是这种情况,您需要鼠标移动的值,并将其添加到舞台的实际大小。代码setOnMousePressed中的值-10类似于边框,因此您可以在更大的区域中单击以调整窗口大小。您可以根据需要调整此值。 以下代码片段可能会有所帮助:

    private Boolean resizebottom = false;
    private double dx;
    private double dy;

    myPane.setOnMousePressed(new EventHandler<MouseEvent>() {
        public void handle(MouseEvent event) {
            if (event.getX() > stage.getWidth() - 10
                    && event.getX() < stage.getWidth() + 10
                    && event.getY() > stage.getHeight() - 10
                    && event.getY() < stage.getHeight() + 10) {
                resizebottom = true;
                dx = stage.getWidth() - event.getX();
                dy = stage.getHeight() - event.getY();
            } else {
                resizebottom = false;
                xOffset = event.getSceneX();
                yOffset = event.getSceneY();
            }
        }
    });

    myPane.setOnMouseDragged(new EventHandler<MouseEvent>() {
        public void handle(MouseEvent event) {
            if (resizebottom == false) {
                stage.setX(event.getScreenX() - xOffset);
                stage.setY(event.getScreenY() - yOffset);
            } else {
                stage.setWidth(event.getX() + dx);
                stage.setHeight(event.getY() + dy);
            }
        }
    });

若你们只想在右下角调整舞台的大小,你们首先需要一个If语句来检查你们的鼠标是否在那个里。除此之外,您还需要在dragFunction中区分情况是否如此。如果是这种情况,您需要鼠标移动的值,并将其添加到舞台的实际大小。代码setOnMousePressed中的值-10类似于边框,因此您可以在更大的区域中单击以调整窗口大小。您可以根据需要调整此值。 以下代码片段可能会有所帮助:

    private Boolean resizebottom = false;
    private double dx;
    private double dy;

    myPane.setOnMousePressed(new EventHandler<MouseEvent>() {
        public void handle(MouseEvent event) {
            if (event.getX() > stage.getWidth() - 10
                    && event.getX() < stage.getWidth() + 10
                    && event.getY() > stage.getHeight() - 10
                    && event.getY() < stage.getHeight() + 10) {
                resizebottom = true;
                dx = stage.getWidth() - event.getX();
                dy = stage.getHeight() - event.getY();
            } else {
                resizebottom = false;
                xOffset = event.getSceneX();
                yOffset = event.getSceneY();
            }
        }
    });

    myPane.setOnMouseDragged(new EventHandler<MouseEvent>() {
        public void handle(MouseEvent event) {
            if (resizebottom == false) {
                stage.setX(event.getScreenX() - xOffset);
                stage.setY(event.getScreenY() - yOffset);
            } else {
                stage.setWidth(event.getX() + dx);
                stage.setHeight(event.getY() + dy);
            }
        }
    });