当我使用鼠标单击并拖动 Jframe 时如何使 Jframe 移动

我一直在尝试完成如何在使用鼠标拖动 jframe 时移动它。但我找不到解决办法。


我尝试在 Jframe 上实现侦听器,但它没有按照我预期的方式工作。


JFrame jframe = new JFrame();

jframe.setSize(500,500);

jframe.setLocation(400, 100);

jframe.setVisible(true);


jframe.addMouseListener(new MouseListener() {

        @Override

        public void mouseClicked(MouseEvent e) {


        }


        @Override

        public void mousePressed(MouseEvent e) {


        }


        @Override

        public void mouseReleased(MouseEvent e) {


        }


        @Override

        public void mouseEntered(MouseEvent e) {


        }


        @Override

        public void mouseExited(MouseEvent e) {


        }

   });


慕无忌1623718
浏览 151回答 1
1回答

慕容3067478

您可以使用 MouseMotionListener。使用 mouseMoved 事件方法移动鼠标时获取鼠标的位置,并将其与拖动事件一起使用以相应地定位框架。:jframe.addMouseMotionListener(new MouseMotionListener() {@Overridepublic void mouseDragged(MouseEvent e) {    xDrag = e.getX();    yDrag = e.getY();    JFrame sFrame = (JFrame) e.getSource();    sFrame.setLocation(sFrame.getLocation().x+xDrag-xPress,     sFrame.getLocation().y+yDrag-yPress); } @Override public void mouseMoved(MouseEvent e) {     xPress = e.getX();     yPress = e.getY();  }});在类中声明变量 xDrag、yDrag、xPress、yPress。我希望这有帮助。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java