How to implement JPane that is animating



Well I admit - its a homework ;-).
I have to animate sth on a JPane, but I don't know how.
My current implementation is: to check in paint method whether some
defined time interval has passed, if so switch to next "Frame", and in
separate thread object repaint this pane often.

But if this thread has big priority GUI is not responsive, if low it
gets CPU time very rarely every so 3-4 seconds! While I need intervals
of 100ms.

Is there a better way of doing it?
Or there is flaw in my implementation. Thanks a lot in advance.

My implementation goes:

private interface Paintable{
Graphics paint(Graphics G);
}

private interface Animable extends Paintable{
void increment();
boolean hasFinished();
int interval(); // returns about 100
void reset();
}

private Vector Animables = new Vector();

//paint method

Iterator i = Animables.iterator(); //I may animate
more than one object at a time.
Date temp = new Date();
long interval = temp.getTime() - lastRepaint.getTime();
lastRepaint = temp;
boolean allFished=true;
while(i.hasNext()){
Animable p = (Animable) i.next();
if(interval > p.interval()) p.increment();
if(!p.hasFinished()) allFished=false;
g = p.paint(g);
}

// That thread

public class Waker extends Thread{
private rysuje r;
private boolean die=false;
public Waker(rysuje r) {
super();
this.setPriority(5);
this.r = r;
}

public void run(){
while(!die){
r.repaint();
yield();
}
}

public void setDie(boolean die) {
this.die = die;

}

}

.



Relevant Pages

  • Re: Need help on design a class- I am clueless
    ... boolean variable called full as instance data that represents if the ... and setter methods for all instance data. ... private double height; ... public void setDepth{ ...
    (comp.lang.java.programmer)
  • Re: JFrame Resize Issues
    ... private Rectangle positRectangle; ... private JMenuItem FilePlayback; ... static public void main{ ... public void componentHidden(ComponentEvent evt) { ...
    (comp.lang.java.programmer)
  • Re: User style collection editor for GridTableStylesCollection
    ... > Inherits System.ComponentModel.Component ... > Private m_AllowSorting As Boolean = False ... > Private m_ColumnHeadersVisible As Boolean = True ... > Public Property AlternatingBackColor() As Color ...
    (microsoft.public.dotnet.languages.vb)
  • Re: NotSerializable object issue...
    ... private static final NoopOutputStream DUMMY_OUTPUT_STREAM = new ... public SerializableCheckerthrows IOException { ... public void writeObjectthrows IOException { ... private int counter; ...
    (comp.lang.java.programmer)
  • Re: Im needing help with compile errors for GUI enviroment GameOfWar
    ... public static int[] randomize ... private Rank ... public void paintComponent ... class WinningsPanel extends JPanel implements ItemListener ...
    (comp.lang.java.gui)