JavaFX(三)窗口拖动

问题场景:

  在上一篇中,我们将窗口的默认标题栏隐藏从而导致鼠标点击窗体无法进行拖动。

思路:

  给组件添加鼠标按下事件监听器和鼠标拖动事件监听器。

实现:

  代码片段:

    private double xOffset = 0;
    private double yOffset = 0;

  代码片段:   

    root.setOnMousePressed((MouseEvent event) -> {
      event.consume();
      xOffset = event.getSceneX();
      yOffset = event.getSceneY();
    });

    root.setOnMouseDragged((MouseEvent event) -> {
      event.consume();
      stage.setX(event.getScreenX() - xOffset);

      //根据自己的需求,做不同的判断
      if (event.getScreenY() - yOffset < 0) {
        stage.setY(0);
      } else {
        stage.setY(event.getScreenY() - yOffset);
      }
    });

  

时间: 2024-11-11 08:13:32

JavaFX(三)窗口拖动的相关文章

关于无标题栏窗口拖动的问题

要使无标题栏窗口实现拖动效果,除了处理OnNCHitTest()函数外:就是在OnLButtonDown()函数中发送虚假消息了. 但是,这儿得注意一下,在OnLButtonDown()函数中如果使用SetCapture()函数后再::SendMessage(m_hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0);是不会成功的!必须去掉或在之后使用. void XWindow::OnLButtonDown(UINT nFlags, CPoint point) { XCon

Duilib改进窗口拖动,使整个窗口都能拖动(转载)

转载:http://www.cnblogs.com/XiHua/articles/3490490.html 转载:http://blog.csdn.net/lostspeed/article/details/19275249 这种方法不修改Duilib库的源码,需要的话直接在你自己的窗口类中添加两个方法实现,不需要的话,还使用原来的方法. MyWnd .h文件 1 virtual LRESULT OnNcHitTest(UINT uMsg, WPARAM wParam, LPARAM lPara

基于jQuery页面窗口拖动预览效果

今天给大家分享一款基于Query页面窗口拖动预览效果.这是一款基于jQuery+HTML5实现的模拟页面窗口显示拖动窗口预览特效.这款实例适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗. 在线预览   源码下载 实现的代码. html代码: <p> minimap - A jQuery Plugin<br> A preview of full webpage or its DOM element with flexible

Winform 窗口拖动

把窗口边框去掉后,窗口拖动问题: private Point mouseOffset; //记录鼠标指针的坐标 private bool isMouseDown = false; //记录鼠标按键是否按下 private void Form1_MouseDown(object sender, MouseEventArgs e) { int xOffset; int yOffset; if (e.Button == MouseButtons.Left) { xOffset = -e.X - Sys

29.QT-自定义窗口拖动、自定义QToolButton/QPushButton开关按钮、界面阴影

自定义窗口及拖动 1.自定义无边框窗口时,需要将窗口标志设为: Qt::FramelessWindowHint |Qt::WindowSystemMenuHint | Qt::WindowMinMaxButtonsHint 2.然后还需要通过安装EventFilter给自己监视窗口拖动 其中构造函数实现: myUi::myUi(QWidget *parent) : QWidget(parent) { setWindowFlags(Qt::FramelessWindowHint |Qt::Wind

WPF 自定义的窗口拖动

WPF原有的窗口样式太丑,当我们重新定义窗口时,则需要添加一些额外的功能,如拖动~ 1.在界面上对布局元素如Grid,添加委托事件: MouseLeftButtonDown="UIElement_OnMouseLeftButtonDown" 2.委托方法中处理一下就行了: private void UIElement_OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e) { if (e.ButtonState==Mou

《Windows程序设计》读书笔三 窗口与消息

第三章 窗口于消息 前面的例子都使用MessageBox来创建窗口 ,单他所创建的窗口灵活性有限. 3.1 窗口的创建 只要调用CreateWindow函数即可 3.1.1 系统结构概述 一个应用程序窗口可能包含,标题栏,菜单栏,工具栏,滚动条.另外还有一种类型的窗口是对话框,这种窗口可以不带标题栏 还可能包含,按钮,单选按钮,复选框,列表框,滚动条,文本框等.每一个这些对象都被称为 子窗口,或者 控件窗口 当用户改变窗口尺寸时,Windows便向应用程序发送一条携带新窗口尺寸相关的信息,接着应

WTL中最简单的实现窗口拖动的方法(转)

目前,很多基于对话框的应用程序中对话框都是不带框架的,也就是说对话框没有标题栏.众所周知,窗口的移动都是通过鼠标拖动窗口的标题栏来实现的,那么现在应用程序中的对话框没有了标题栏,用户如何移动对话框呢?本实例针对这个问题提出解决的办法. 一.实现方法 解决无标题栏窗口的拖动问题有两种方案,一种方案是使用常规思路来处理鼠标拖拽事件,当窗口获得WM_LBUTTONDOWN(OnLButtonDown)时,通过设置标志并调用CWnd::SetCapture()函数来让当前窗口捕捉鼠标消息,应用程序进入移

linux终端或者虚拟机SecureCRT窗口拖动之后,会自动收到一个Ctrl+C的命令

虚拟机中SecureCRT窗口每次鼠标划动和拖动窗口都会出现Crtl+C命令,导致远程Linux连接操作中断 经查找发现是本地机器里安装了相关软件快捷键导致,比如我的有道词典划词功能,取消划词即可 版权声明:本文为博主原创文章,未经博主允许不得转载.