Drag and Drop usando Mouse Events

Eaí galera, tudo beleza?

Pois bem, minha dúvida apareceu subitamente e ela é imprescindível para o término do meu projeto. É o seguinte: Comecei a estudar Drag and Drop (Do próprio java), mas não gostei muito, estava achando difícil quando passava de um container para outro, arrastar JLabels para dentro de JPanel (renderizando a imagem para que sua posição atual fosse atualizada) e fiz meu próprio Drag and Drop usando Mouse Events.

É muito simples, no ato de clicar eu faço isso:

[code]public void mousePressed(MouseEvent e) {
try {
inicio = e.getPoint();
JComponent comp = (JComponent) e.getSource();

            comp.setBorder(new MatteBorder(1, 1, 1, 1, Color.black));
            dragging = true;
        } catch (Exception e5) {
        }
    }[/code]

E ao arrastar faço isso:

[code]public void mouseDragged(MouseEvent e) {
JComponent comp = (JComponent) e.getSource();
String txt = labelFeed.getText();
if(dragging) {
Rectangle r = comp.getBounds();
r.x += e.getX() - inicio.x;
r.y += e.getY() - inicio.y;

            if(r.x >= painel.getX()) {
                labelFeed.setText("Area do Panel");
                JLabel label = (JLabel)comp;
                label.setIcon(new ImageIcon("sad.jpg"));
                label.setText("");
            } else {
                labelFeed.setText(txt);
                JLabel label = (JLabel)comp;
                label.setIcon(null);
                label.setText("TesteLabel");
            }
            comp.setBounds(r);
        }
    }[/code]

A minha dúvida é:

Há ocasiões onde eu não irei querer ARRASTAR um componente, e sim COPIÁ-LO para uma outra posição, alguém tem sugestões de como faço isso?

Obrigado!!

Alguém? ));

nunca fiz isso mas pensando rapidamente assim pensei no método de mouseReleased… qndo soltar o botao do mouse, vc ao invés de alterar a localização do componente original vc cria outro

Poisé, mas essa criação do outro que tou me enrrolando…