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