java怎么实现鼠标拖动画矩形

avatar
作者
筋斗云
阅读量:1

要实现鼠标拖动画矩形,可以使用Java的Swing库来完成。下面是一个简单的示例代码:

import javax.swing.*; import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent;  public class DraggableRectangle extends JFrame {     private int initialX, initialY;     private int currentX, currentY;     private Rectangle rectangle;      public DraggableRectangle() {         setTitle("Draggable Rectangle");         setSize(400, 400);         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);          // 创建矩形并设置初始位置和大小         rectangle = new Rectangle(100, 100, 100, 100);          // 添加鼠标事件监听器         addMouseListener(new MouseAdapter() {             @Override             public void mousePressed(MouseEvent e) {                 // 记录鼠标按下时的初始位置                 initialX = e.getX();                 initialY = e.getY();             }         });          addMouseMotionListener(new MouseAdapter() {             @Override             public void mouseDragged(MouseEvent e) {                 // 计算鼠标拖动后的位置                 currentX = e.getX();                 currentY = e.getY();                  // 计算矩形的偏移量                 int offsetX = currentX - initialX;                 int offsetY = currentY - initialY;                  // 更新矩形的位置                 rectangle.setLocation(rectangle.x + offsetX, rectangle.y + offsetY);                  // 重绘窗口                 repaint();                  // 更新初始位置                 initialX = currentX;                 initialY = currentY;             }         });     }      @Override     public void paint(Graphics g) {         super.paint(g);          // 绘制矩形         g.fillRect(rectangle.x, rectangle.y, rectangle.width, rectangle.height);     }      public static void main(String[] args) {         SwingUtilities.invokeLater(() -> {             DraggableRectangle draggableRectangle = new DraggableRectangle();             draggableRectangle.setVisible(true);         });     } } 

运行以上代码,将会显示一个可拖动的矩形窗口。当鼠标按下并拖动时,矩形会跟随鼠标的移动而移动。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!