Olá galera, o meu programa abaixo ele cria 3 imagens e permite que você arraste uma em cima da outra, substituindo a imagem do local aonde foi arrastado pela imagem que você arrastou.
Gostaria de saber como trocar as imagens ao invés de substituir. Por exemplo: Se eu arrasto a imagem java1 para a java2, eu não quero apenas que a imagem java2 vire a imagem java1, mas que java1 também virasse java2, espero não ter ficado muito confuso. Agradeço desde já.
[code]import java.awt.FlowLayout;
import javax.swing.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class DragAndDrop extends JFrame{
JLabel pic1, pic2, pic3;
public DragAndDrop(){
super("Drag and Drop Images");
pic1 = new JLabel();
pic2 = new JLabel();
pic3 = new JLabel();
pic1.setBounds(20,30,120,120);
pic2.setBounds(250,30,120,120);
pic3.setBounds(20,140,120, 120);
pic1.setIcon(new ImageIcon("C:\\Users\\Usori\\Desktop\\Java1.png"));
pic2.setIcon(new ImageIcon("C:\\Users\\Usori\\Desktop\\Java2.png"));
pic3.setIcon(new ImageIcon("C:\\Users\\Usori\\Desktop\\Java2.png"));
MouseListener m1 = new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {}
@Override
public void mousePressed(MouseEvent x) {
JComponent jc = (JComponent)x.getSource();
TransferHandler th = jc.getTransferHandler();
th.exportAsDrag(jc, x, TransferHandler.COPY);
}
@Override
public void mouseReleased(MouseEvent e) {}
@Override
public void mouseEntered(MouseEvent e) {}
@Override
public void mouseExited(MouseEvent e) {}
};
pic1.addMouseListener(m1);
pic2.addMouseListener(m1);
pic3.addMouseListener(m1);
pic1.setTransferHandler(new TransferHandler("icon"));
pic2.setTransferHandler(new TransferHandler("icon"));
pic3.setTransferHandler(new TransferHandler("icon"));
add(pic1);
add(pic2);
add(pic3);
setLayout(new FlowLayout());
setSize(500,500);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new DragAndDrop();
}
}[/code]