steuba | Salut a tous,
Je fait une interface graphique de jeu d echecs, et maintenant j essaye d y ajouter les fonctionnalites drag and drop...Pour l instant j en suis arrive a un stade ou le dnd marche bien mais pas excatement comme je le voudrait!
En fait par analogie avec le Clipboard et les fonctionnalites /copier/couper/coller, je voudrais qu une fois que j ai drager et dropper ma piece celle ci n apparaisse plus sur sa case d origine mais juste sur sa case d arrive, en gros faire un couper /coller de la piece or pour l instant y a que le copier coller qui marche....
Le code est assez experimental (vu que je debute) mais toute explication est bonne a prendre
merci
Code :
- public class CaseView extends JLabel {
-
- CaseView(boolean b, int i, int j) {
-
- //constructeur qui cree les cases de l echiquier
- this.setSize(10,10);
- if (b ) {
- this.setOpaque(true);
- this.setBackground(Color.white);
- this.setTransferHandler(new TransferHandler("icon" ));
- MouseListener listener = new DragMouseAdapter();
- this.addMouseListener(listener);
-
- } else {
- this.setOpaque(true);
- this.setBackground(Color.blue);
- this.setTransferHandler(new TransferHandler("icon" ));
- MouseListener listener = new DragMouseAdapter();
- this.addMouseListener(listener);
- }
- //dans cette partie on ajoute les pieces sur chaque case de depart du jeu
- switch(i) {
-
-
- case 1:
- if (j ==1){ this.setIcon(tourn);}
- if (j ==2){ this.setIcon(cavaln);}
- if (j ==3){ this.setIcon(foun);}
- if (j ==4){ this.setIcon(damen);}
- if (j ==5){ this.setIcon(roin);}
- if (j ==6){ this.setIcon(foun);}
- if (j ==7){ this.setIcon(cavaln);}
-
- if (j ==8){ this.setIcon(tourn);}
- break;
- case 2:this.setIcon(pionn);
-
- break;
- case 7 :this.setIcon(pion);
-
-
- break;
- case 8:
- if (j ==1){ this.setIcon(tour); }
- if (j ==2){ this.setIcon(caval);}
- if (j ==3){ this.setIcon(fou);}
- if (j ==4){ this.setIcon(dame);}
- if (j ==5){ this.setIcon(roi);}
- if (j ==6){ this.setIcon(fou);}
- if (j ==7){ this.setIcon(caval);}
- if (j ==8){ this.setIcon(tour);
- }
-
- break;
-
- }
- }
- private class DragMouseAdapter extends MouseAdapter {
- public void mousePressed(MouseEvent e) {
-
- JComponent c = (JComponent)e.getSource();
- TransferHandler handler = c.getTransferHandler();
- handler.exportAsDrag(c, e, TransferHandler.MOVE);
- // ici si je change MOVE par COPY le dnd est bien activee
- // et fonctionne mais fait des copie/colle....
-
- }
- }
- }
|
|