jddipqd
Čuven
- Učlanjen(a)
- 17.10.2000
- Poruke
- 2,621
- Poena
- 725
Treba da napravim drag-and-drop funkcionalnost za Java2D oblik.
Implementirao sam interfejse MouseListener i MouseMotionListener i definisao mousePressed i mouseDragged.
(figura je definisana kao Rectangle2D.Double)
Ovo radi, ali ne radi dovoljno brzo. Ako miša pomeram polako pravougaonik ga lepo prati, ali ako se pomeri malo brže pravougaonik "ispadne", odnosno u jednom trenutku prestane da prati miša.
Kako da napravim handler koji neće zavisiti od brzine pomeranja miša?
Implementirao sam interfejse MouseListener i MouseMotionListener i definisao mousePressed i mouseDragged.
(figura je definisana kao Rectangle2D.Double)
Kod:
public void mousePressed(MouseEvent e){
if (figura.contains(e.getX(), e.getY())) {
last_x = (int)figura.getX() - e.getX();
last_y = (int)figura.getY() - e.getY();
}
updateLocation(e);
}
public void mouseDragged(MouseEvent e) {
updateLocation(e);
}
public void updateLocation(MouseEvent e) {
if (figura.contains(e.getX(), e.getY())) {
figura.setRect(last_x + e.getX(), last_y + e.getY(), 30 ,30);
}
repaint();
}
Ovo radi, ali ne radi dovoljno brzo. Ako miša pomeram polako pravougaonik ga lepo prati, ali ako se pomeri malo brže pravougaonik "ispadne", odnosno u jednom trenutku prestane da prati miša.
Kako da napravim handler koji neće zavisiti od brzine pomeranja miša?