javafx stage setX,如果值是负数,则setY不起作用

问题描述

import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.borderpane;
import javafx.stage.Stage;
import javafx.stage.StageStyle;

public class Window extends Application {
    private double xOffset = 0;
    private double yOffset = 0;
    public static void main(String[] args) {
    launch(args);
    }

    public void start(final Stage primaryStage) {
    primaryStage.initStyle(StageStyle.UNDECORATED);
    borderpane root = new borderpane();
    root.setonmousepressed(new EventHandler<MouseEvent>() {

        public void handle(MouseEvent event) {
            xOffset = event.getSceneX();
            yOffset = event.getSceneY();
        }
        });
    root.setonMouseDragged(new EventHandler<MouseEvent>() {

        public void handle(MouseEvent event) {
            primaryStage.setX(event.getScreenX() - xOffset);
            primaryStage.setY(event.getScreenY() - yOffset);
        }
        });
    Scene scene = new Scene(root,800,600);
    primaryStage.setScene(scene);
    primaryStage.show();
    primaryStage.setX(-100);
    primaryStage.setY(-100);
    }
}

如果setX值为负,但在运行时,x和y将设置为0。 并且不能将舞台拖到屏幕外。

系统是linux。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)