各位前辈好: 我在运行的界面上拖动一个按钮到任意位置,用了e.getpoing()获取了鼠标位置,然后setlocation()这个位置,但实际效果不是鼠标移动到的地方,是不是需要坐标转换? 这个问题有什么解决的办法吗,实验了好多次,都不能达到效果,是不是坐标转换之类的问题,头疼中,求大家帮忙拉  
另:我新来的,感觉这个论坛好哦,怎么挣分呢,我要努力答谢人家呀!

解决方案 »

  1.   

    只需要把鼠标的Point转换到Button的父容器的位置即可:
    Point point = e.getPoint();
    Point p = SwingUtilities.convertPoint(button,
                                     point,
                                     button.getParent());
    button.setLocation(p);
      

  2.   

    你有没有使用Graphics2D 上下文中的变换,如果使用了g.translate();移动了坐标原点,使用上面这方法,是不行的