private synchronized void startSort(){
  if (kicker == null || !kicker.isAlive()) {
    kicker=new Thread(this);
    kicker.start();
  }
}

private synchronized void startSort ( ) { if ( kicker == null || ! kicker . isAlive ( ) ) { kicker = new Thread ( this ) ; kicker . start ( ) ; } }
for a thread to actually do the sorting . this routine makes sure we do not simultaneously start several sorts if the user repeatedly clicks on the sort item . it needs to be synchronized with the stop ( ) method because they both manipulate the common kicker variable .
