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

How to make the Jframe move when I click and drag it using my mouse

我一直在尝试完成如何在使用鼠标拖动时移动 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) {

        }
   });

您可以使用 MouseMotionListener。使用 mouseMoved 事件方法移动鼠标时获取鼠标的位置,并将其与拖动事件一起使用以相应地定位框架。 :

jframe.addMouseMotionListener(new MouseMotionListener() {
@Override
public 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();
  }
});

在您的 class 中声明变量 xDrag、yDrag、xPress、yPress。希望对您有所帮助。