繁体   English   中英

Java Swing重新绘制图像

[英]Java Swing Repaint an image

我想为Image实现一个DragAndDrop,但似乎无法让Swing重绘功能在特定Image上工作。

码:

public class playerFrame extends JFrame{
...
    private void destroyerImageMouseDragged(java.awt.event.MouseEvent evt)  
    }                                             
    repaintCurrentPosition(evt);
    }               

    public void repaintCurrentPosition(MouseEvent e){
        this.setLocation(e.getX(), e.getY());
        this.repaint();
    }

this.repaint < - 这个函数重新绘制整个帧,而不仅仅是我想要重绘的Image,大小约为50x50。 如何在不创建新类的情况下重新绘制特定的JPEG图像?

谢谢。

this.repaint将强制重新绘制父框架。 仅在保持图像的控件上调用repaint

示例:刷新加载到JLabel的图像:

ImageIcon icon = createImageIcon("images/middle.gif");
label = new JLabel("Image and Text", icon, JLabel.CENTER);

你做:

label.repaint();
not just the Image I'd like it to repaint, which is about 50x50 size

JComponent#paint立即与EDT一起使用

您如何进行拖放?

最简单的方法是只将一个Icon添加到JLabel,然后拖动标签。 每次在标签上调用setLocation(...)时,它都会重绘()本身。

Component Mover类为您完成了所有艰苦的工作。

仅在repaint图像的面板上调用repaint

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM