我正在使用JFX和JavaFX场景构建器构建预订系统应用程序。 我认为为了让它看起来更好我可以删除边框,或者如代码那样,将其设置为“未修饰”。现在我想通过单击场景并拖动它来将其拖动到屏幕上。我尝试了很多方法,但没有一个真正起作用。 我现在可以帮忙了。
提前谢谢你。
答案 0 :(得分:1)
我正在使用场景构建器,这是我发现的 使用背景窗格移动未修饰的窗口。
@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;
}
}