sushpb4u
asked on
Timer function prob
hi..
I am using Timer in my program to continuosly draw some circles after a small delay....but even if i give delay parameter as 1 millisecond..i draws circle after 10 ms...and bcoz of that whole proc works slow..is there any better way to do this or what is prob with Timer??
I am using Timer in my program to continuosly draw some circles after a small delay....but even if i give delay parameter as 1 millisecond..i draws circle after 10 ms...and bcoz of that whole proc works slow..is there any better way to do this or what is prob with Timer??
The Timer is not accurate enough to distinguish between resolutions of 1ms (I think it has more to do with the OS than the java Timer function though). Anyways, you cannot rely on a Timer or Sleep function to accurately distinguish resolutions that small.
and if you could, the Timer would lock the system :-(
Try storing the System.currentTimeMillis() value at the end of the timer function, then drawing that number of circles next time the Timer fires... bit of a hack, but you will get one circle per ms ;-)
Try storing the System.currentTimeMillis()
ie:
draw ( System.currentTimeMillis() - oldTime ) circles
then set oldTime = System.currentTimeMillis() ;
draw ( System.currentTimeMillis()
then set oldTime = System.currentTimeMillis()
Working the weekend Tim?
;-)
;-)
hehehe, no...just got up and thought I'd have a look before I go and buy a dvd player and some fireworks :-)
what a combination ;-)
what a combination ;-)
ASKER
sorry for late reply..but TimYates i didnt get ur solution...
see tihs is my code in Timer funciotn
speed=1;
myTimer=new Timer(speed,this) ;
myTimer.start();
///in actionPerformed()
if (e.getSource() == myTimer)
{
drawCircle(0);
if(i%2==0 )
drawCircle(1);
if(i%4==0 )
drawCircle(2);
if(i%7==0 )
drawCircle(3);
i++;
}
}
by tihs i want to draw 4 circles pixel by pixel with different speeds...and i want to draw first circle with speed 1ms...like when 1st circle completes 2 circles...2nd circle circle shud complete one round..like this...
but all this shud happen with speed given by 'speed' variable..so it is possible with System.currentTimeMillis() ???
plz reply..
see tihs is my code in Timer funciotn
speed=1;
myTimer=new Timer(speed,this) ;
myTimer.start();
///in actionPerformed()
if (e.getSource() == myTimer)
{
drawCircle(0);
if(i%2==0 )
drawCircle(1);
if(i%4==0 )
drawCircle(2);
if(i%7==0 )
drawCircle(3);
i++;
}
}
by tihs i want to draw 4 circles pixel by pixel with different speeds...and i want to draw first circle with speed 1ms...like when 1st circle completes 2 circles...2nd circle circle shud complete one round..like this...
but all this shud happen with speed given by 'speed' variable..so it is possible with System.currentTimeMillis()
plz reply..
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
hi tim Yates....yes..its really tooo fast ...but i will do sometihing for that..and thanx a lotttttttt:)