Javafx实现窗口随意拖动(鼠标监听)

 这是在某个大佬帖子上看到的,暂时放这里。

支持原创,感谢分享!

转载自:https://bbs.csdn.net/topics/392149093


package application;

import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.input.MouseEvent;
import javafx.stage.Stage;

public class test extends Application{

double x1;
double y1;
double x_stage;
double y_stage;

public void start(Stage stage){

  Group root = new Group();
      Scene scene = new Scene(root, 100, 100);
      stage.setScene(scene);
      stage.show(); 
      
      scene.setOnMouseDragged(new EventHandler<MouseEvent>() {
       @Override public void handle(MouseEvent m) {
         

         
         //计算          
         stage.setX(x_stage + m.getScreenX() - x1);
         stage.setY(y_stage + m.getScreenY() - y1);

         
         
         }                                                
        });
      scene.setOnDragEntered(null);
      scene.setOnMousePressed(new EventHandler<MouseEvent>() {
         
         @Override public void handle(MouseEvent m) {
         
         //按下鼠标后,记录当前鼠标的坐标         
         x1 =m.getScreenX();
         y1 =m.getScreenY();
         x_stage = stage.getX();
             y_stage = stage.getY();
         
         
         
           }                
        });    
      
      
      
      
} 

 public static void main(String[] args) {
 launch();

    }
}

 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值