code: protected void tickParticipants (long tickStamp)
      {
          long gap = tickStamp - _lastTickStamp;
          if (_lastTickStamp != 0 && gap > (HANG_DEBUG ? HANG_GAP : BIG_GAP)) {
              log.debug("Long tick delay [delay=" + gap + "ms].");
          }
          _lastTickStamp = tickStamp;
  
          // validate any invalid components
          try {
              _repainter.validateComponents();
          } catch (Throwable t) {
              log.warning("Failure validating components.", t);
          }
  
          // tick all of our frame participants
          for (Object participant : _participants) {
              FrameParticipant part = (FrameParticipant)participant;
              if (part == null) {
                  continue;
              }
  
              try {
                  long start = 0L;
                  if (HANG_DEBUG) {
                      start = System.currentTimeMillis();
                  }
  
                  part.tick(tickStamp);
  
                  if (HANG_DEBUG) {
                      long delay = (System.currentTimeMillis() - start);
                      if (delay > HANG_GAP) {
                          log.info("Whoa nelly! Ticker took a long time",
                              "part", part, "time", delay + "ms");
                      }
                  }
  
              } catch (Throwable t) {
                  log.warning("Frame participant choked during tick",
                      "part", StringUtil.safeToString(part), t);
              }
          }
  
          // if we have an overlay, tick that too
          if (_overlay != null) {
              _overlay.tick(tickStamp);
          }
      }
docs: Called once per frame to invoke {@link FrameParticipant#tick} on all of our frame
  participants.