Salve, questo è il mio primo post, spero di non sbagliare nulla :-)
Ho creato un gioco di carte in Java, ho implementato il drag and drop utilizzando le classi del pacchetto java.awt.dnd, funziona tutto...
Adesso vorrei fare in modo che quando sposto la carta sul tavolo l'icona, della JLabel che rappresenta la carta, seguisse il cursore durante il trascinamento...
Per fare ciò ho associato al mio JTavolo (classe che estende JPanel) un MouseMotionListener, posto qui la parte di codice interessata
Ho messo quel print per vedere se veniva chiamato il metodo ed effettivamente il metodo non viene chiamato per nulla :-)codice:public JTavolo(int diff){ this.difficolta=diff; this.tavolo=new Tavolo(difficolta); addMouseMotionListener(new MouseMotionListener() { @Override public void mouseMoved(MouseEvent e) { } @Override public void mouseDragged(MouseEvent e) { System.out.println("Evento catch"); JCarta c=(JCarta)e.getSource(); Point p= e.getLocationOnScreen(); paintCard(p.x, p.y, c.getIcona()); } }); generaCarte(); validate(); }
Io credo che il problema sia nel DnD, forse catcha tutti i movimenti del mouse e non viene generato per nulla il mouse event relativo al drag, se invece metto un print nel metodo mouseMoved, per ogni spostamento del mouse mi stampa quello che deve stamparmi...
Non so se sono stato chiaro... avete qualche idea? grazie mille in anticipo