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!!