各位前辈好:
我在运行的界面上拖动一个按钮到任意位置,用了e.getpoing()获取了鼠标位置,然后setlocation()这个位置,但实际效果不是鼠标移动到的地方,是不是需要坐标转换? 这个问题有什么解决的办法吗,实验了好多次,都不能达到效果,是不是坐标转换之类的问题,头疼中,求大家帮忙拉 还有,有没有什么控件,在运行时就是可以随意拖动的呀?
我在运行的界面上拖动一个按钮到任意位置,用了e.getpoing()获取了鼠标位置,然后setlocation()这个位置,但实际效果不是鼠标移动到的地方,是不是需要坐标转换? 这个问题有什么解决的办法吗,实验了好多次,都不能达到效果,是不是坐标转换之类的问题,头疼中,求大家帮忙拉 还有,有没有什么控件,在运行时就是可以随意拖动的呀?
而setLocation()是指面板中得位置, 2个位置自然不一样得.
需要变换一下得.
而且按钮跟着你的鼠标动和不跟鼠标动, 最后released得时候才移动, 做法也不一样得.
跟着鼠标动:
记下Pressed时候Point.
在dragged里面, 拿到新的Point, 两个Point之差就是位移. 然后setLocation=getLocation+位移.
不过这个方法在鼠标快速移动得时候可能会失效, 因为dragged需要鼠标一直在按钮得区域中.
不跟鼠标动
released时候拿到point, 用getLocation和point计算一下新的location, 设置就行了, 这个简单, 但是不是太友好.
更复杂得做法是: dragged得时候按钮不动, 但是在panel上描画一个按钮得虚框在动, released得时候按钮才动...