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

   2025-02-13 2020
核心提示:要实现鼠标拖动画矩形,可以使用Java的Swing库来完成。下面是一个简单的示例代码:import javax.swing.*;import java.awt.*;impo

要实现鼠标拖动画矩形,可以使用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);        });    }}

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

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言