2011-12-21 124 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這個課程爲你做了所有的辛苦工作。