我正在使用 JFX 和 JavaFX 场景构建器构建预订系统应用程序。我认为为了让它看起来更好,我可以删除边框,或者按照代码,将其设置为“未装饰”。现在我想通过单击场景并拖动它来使其能够在屏幕上拖动。我尝试了很多方法,但没有一个真正奏效。我现在可以使用一些帮助。
先感谢您。
我正在使用 JFX 和 JavaFX 场景构建器构建预订系统应用程序。我认为为了让它看起来更好,我可以删除边框,或者按照代码,将其设置为“未装饰”。现在我想通过单击场景并拖动它来使其能够在屏幕上拖动。我尝试了很多方法,但没有一个真正奏效。我现在可以使用一些帮助。
先感谢您。
我正在使用场景生成器,这就是我发现的。
使用背景窗格移动未装饰的窗口。
@FXML
private Pane pane;
@Override
public void initialize(URL url, ResourceBundle rb) {
pane.setOnMousePressed(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent t) {
//System.out.println("Pressed");
//System.out.println("Mouse : " + t.getX() + " | " + t.getY());
mouse.setX(t.getX());
mouse.setY(t.getY());
}
});
pane.setOnMouseDragged(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent t) {
//System.out.println("Dragged");
//System.out.println("Mouse : " + t.getX() + " | " + t.getY());
pane.getScene().getWindow().setX( t.getScreenX() - mouse.getX() - 14);
pane.getScene().getWindow().setY( t.getScreenY() - mouse.getY() - 14);
}
});
}
鼠标类:
public class Mouse {
private double x = 0;
private double y = 0;
public double getX() {
return x;
}
public void setX(double x) {
this.x = x;
}
public double getY() {
return y;
}
public void setY(double y) {
this.y = y;
}
}