2011-12-21 82 views
1

我想为图像实现DragAndDrop,但似乎无法使Swing重绘功能在特定图像上工作。Java Swing重绘图像

代码:

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 < - 此功能重新绘制整个帧,而不仅仅是图片,我想它重新绘制,这是50×50左右大小。 如何在不创建新类的情况下重新绘制特定的JPEG图像?

谢谢。

回答

0

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

1

this.repaint将强制父帧被重新绘制。仅在保存图像的控件上拨打repaint

实例:刷新此图像加载到一个JLabel:

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

你这样做:

label.repaint(); 
1

你怎么样的阻力和下降?

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

Component Mover这个课程为你做了所有的辛苦工作。