codice:
//ASCOLTATORE MOUSE
class AscoltatoreMouse implements MouseListener, MouseMotionListener{
private int clicX;
private int clicY;
private int tempX;
private int tempY;
private int posX;
private int posY;
public void mouseClicked(MouseEvent e){
//codice
}//mouseClicked
public void mousePressed(MouseEvent me) {
clicX = me.getX();
clicY = me.getY();
tempX = posX;
tempY = posY;
}//mousePressed
public void mouseReleased(MouseEvent me) {
if (clicX!=me.getX() || clicY!=me.getY())
riposizionaFrame(me.getX() - clicX, me.getY() - clicY);
}//mouseREleased/
public void mouseMoved(MouseEvent me){
System.out.println(me.getX());
}
public void mouseDragged(MouseEvent me){}
public void mouseExited(MouseEvent me){}
public void mouseEntered(MouseEvent me){}
private void riposizionaFrame(int x, int y) {
setLocation(tempX + x, tempY + y);
tempX += x;
tempY += y;
posX += x;
posY += y;
}//riposizioamento
}//AscoltatoreMouse
Il codice di mouseClicked l'ho tolto perché lungo. Come vedi mousePressed e mouseReleased con riposizionaFrame fanno si che io possa spostare il Frame col click.
Solo che non si sposta con il mouse, ma quando appunto c'è il "released".
Il mouseMove lo volevo usare appunto per far si che la finestra si spostasse progressivamente.
assegnazione:
codice:
tela.addMouseListener(new Teatro.AscoltatoreMouse());
dove tela è un JPanel