I use System.nanoTime() to compute the exact duration of the most recent frame. I then compute a time factor from frame duration, which is applied in all computations. This way, you get approximately performance-independent game behavior. Pseudocode example:
1 2 3 4 5 6 7 8 9 10
| timer=nanotime
while game running timer=nanotime-timer delta=nanotimer/10e6 exampleposition+=examplevelocity*delta
|
Note: You have to be a bit careful when dealing with derivates (e.g. accelleration), know your calculus

hth Wolfgang
"I'm a ****ing starship, I'm allowed to cheat!"
GCU Arbitrary, Culture Craft