1

我正在使用 JFX 和 JavaFX 场景构建器构建预订系统应用程序。我认为为了让它看起来更好,我可以删除边框,或者按照代码,将其设置为“未装饰”。现在我想通过单击场景并拖动它来使其能够在屏幕上拖动。我尝试了很多方法,但没有一个真正奏效。我现在可以使用一些帮助。

先感谢您。

4

1 回答 1

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;
    }
}
于 2013-08-06T14:25:48.067 回答