JavaSwing窗体拖拽移动

2016-05-23· 2305 次浏览
核心代码: ```java / ----- 窗口拖动 ----- / final java.awt.Point origin = new java.awt.Point(); canvas.addMouseListener(new MouseAdapter() {     // 按下(mousePressed 不是点击,而是鼠标被按下没有抬起)     public void mousePressed(MouseEvent e) {         // 当鼠标按下的时候获得窗口当前的位置         origin.x = e.getX();         origin.y = e.getY();         isTuo = true;     }     @Override     public void mouseReleased(MouseEvent e) {         isTuo = false;     } }); canvas.addMouseMotionListener(new MouseMotionAdapter() {     // 拖动(mouseDragged 指的不是鼠标在窗口中移动,而是用鼠标拖动)     public void mouseDragged(MouseEvent e) {         if (!isTuo)             return;         // 当鼠标拖动时获取窗口当前位置         java.awt.Point p = frame.getLocation();         // 设置窗口的位置         // 窗口当前的位置 + 鼠标当前在窗口的位置 - 鼠标按下的时候在窗口的位置         frame.setLocation(p.x + e.getX() - origin.x, p.y + e.getY() - origin.y);     } }); ```