JFC系列3之添加窗体内拖动

本文介绍如何在Swing编程中实现JFrame窗体的自由拖动功能,包括去掉窗体修饰后的拖动实现方法。

  在swing编程中,要拖动一个JFrame,是要在窗体标题那里按住鼠标才可以拖动它的。但有时,我们需要鼠标在窗体里面就能够拖动这个窗体,就像QQ的聊天窗口一样。另一方面,我们可能会对一个JFrame去掉窗体修饰(调用setUndecorated(true)方法),这时候貌似就不能拖动窗体了。

  添加窗体拖动的思路很简单,给它添加一个鼠标监听器。重写MouseAdapter的几个方法。一个是mousePressed,表示鼠标按下,在此获取鼠标按下时的坐标;一个是mouseDragged,表示鼠标拖动,在此获取此时鼠标和窗体的坐标,并计算出窗体应该出现的坐标并调用其setLocation方法。我已经将其封装,代码实现如下:

 

  上面代码已被收录在我的diaoxianSoft中的easyJFC包中。此包暂未完善,亦未做正规测试,不知其有多大通用性,仅作为我个人的私有包,在自己写代码中使用。

  JFC系列将分享一些常见但又让我们这些新手头疼的问题的解决方法,希望大家继续关注,也希望大家一起分享自己的成果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值