java - 在 Java2D 中移动多个 BufferedImage?

标签 java mouseevent bufferedimage java-2d

如何在 Java2D 中用鼠标拖动不同的 BufferedImages?

例如,如果我有十张或更多图片,我该如何移动鼠标悬停的图片?

现在我正在导入一个 BufferedImage

BufferedImage img = new BufferdImage(new File("filename"));

我用 Graphics2D 绘制这个

public void paintComponent(Graphics g) {
    super.paintComponent(g);
    g2d = (Graphics2D) g;
    g2d.drawImage(img, x1, y1, null);
    g2d.drawImage(img2, x2, y2,null);
}

每次我在图像上移动时,我都会重新绘制 ()-ing 整个屏幕。 我的mousemove类如下

class MouseMotionHandler extends MouseMotionAdapter {

    @Override
    public void mouseDragged(MouseEvent e) {
        x1 = e.getX() - (img.getWidth() / 2);
        y1 = e.getY() - (img.getHeight() / 2);
        repaint();
    }
}

用这种方法我可以“拖动”一张图片,但是当我要单独拖动时怎么办?

最佳答案

使用 BufferedImage 创建一个用于创建 JLabel 的 ImageIcon。然后将 JLabel 添加到使用空布局的面板。不需要自定义绘画代码来执行此操作。

现在如果你想拖动标签,你可以使用 Component Mover .

关于java - 在 Java2D 中移动多个 BufferedImage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2606619/

相关文章:

java - 为 BufferedImage 的一个区域着色

java - 当有文本字段溢出时缺少单词

java - 收集到方法参数?

windows - SetCursorPos 无法通过远程桌面工作(从 WM_INPUT 事件中读取)

Java缓冲图像: Alpha change makes low alpha areas appear black

java - 我的神经网络有更好的激活函数吗?

java - Spring Boot - 使用自定义 PreAuthorize 表达式和身份验证测试 Rest Api

java - androidplot缩放示例错误

c++ - Qt5/C++ 在 mousePressEvent 期间释放鼠标

c++ - Qt获取应用程序窗口外的鼠标事件