Drag & Drop, Icons sollen getauscht werden

Chris89

Mitglied
Hallo Leute,
ich habe ein Problem, und zwar will ich ein Icon verschieben und dabei soll das QuellIcon das "Bild" vom ZielIcon übernehmen, ich habe es mit mouseReleased versucht, aber da passiert garnichts irgendwie.

Hier mein QuellText:

Java:
class DragMouseAdapter extends MouseAdapter {
	JComponent c;	
  public void mousePressed(MouseEvent e) {
    c = (JComponent) e.getSource();
    TransferHandler handler = c.getTransferHandler();
    handler.exportAsDrag(c, e, TransferHandler.COPY);
    
            
  }
  public void mouseReleased(MouseEvent ev) {
          JComponent jc = (JComponent) c.getDropTarget().getComponent();
	  c.add(jc); 
	  
  }
  
  }
public class IconDnD {
  public static void main(String[] args) {
    JFrame f = new JFrame("Icon Drag & Drop");
    f.setSize(500, 500);
    ImageIcon icon1 = new ImageIcon("bla.gif");
    ImageIcon icon2 = new ImageIcon("blu.gif");
    ImageIcon icon3 = new ImageIcon("bli.gif");
        
    JLabel label3 = new JLabel(icon3);

    JLabel label1 = new JLabel(icon1);
    JLabel label2 = new JLabel(icon2);

    MouseListener listener = new DragMouseAdapter();
    label3.addMouseListener(listener);
    label1.addMouseListener(listener);
    label2.addMouseListener(listener);

    label1.setTransferHandler(new TransferHandler("icon"));
    label3.setTransferHandler(new TransferHandler("icon"));
    label2.setTransferHandler(new TransferHandler("icon"));

    f.add(label3, BorderLayout.WEST);
    f.add(label1, BorderLayout.EAST);
    f.add(label2, BorderLayout.NORTH);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
    f.setVisible(true);
  }
}
 
Zuletzt bearbeitet:
Vielleicht hätte ich noch andeuten sollen, dass man den den Infos die du gibst nichts anfangen kann. Ich verstehe nicht mal was überhaupt machen möchtest.

Den Source Code könntest du auch mal erklären.
 
Also ich will ein Puzzle machen, ich habe also kleine rechteckige Bilder und will diese per Drag & Drop verschieben, wenn ich Puzzlestück A auf Puzzlestück B schiebe, wird B durch A ersetzt, dabei wird A zu B. Um das zu realisieren benutze ich JLabels und belege diese mit den Bildstücken. Ich habe nochmal die mouseReleased-Methode ergänzt, wie ich es mir vorgestellt habe. Und zwar soll der beim release, die Komponente holen und ersetzen, aber es passiert eben garnichts.
Hoffe es ist jetzt verständlicher.🙂
 

Zurück
Oben