public void start(){
  calculatePositionArray();
  setPreferredSize(calculatePreferredSize());
  offset=getWidth();
  timer=new Timer(interval,this);
  timer.start();
}

public void start ( ) { calculatePositionArray ( ) ; setPreferredSize ( calculatePreferredSize ( ) ) ; offset = getWidth ( ) ; timer = new Timer ( interval , this ) ; timer . start ( ) ; }
start the ticker - do this only after the gui has been packed as the offset needs to know the actual width of the control to set itself correctly .
