code: public void populationUpdate(final PopulationData<?> populationData)
      {
          SwingUtilities.invokeLater(new Runnable()
          {
              public void run()
              {
                  if (populationData.getGenerationNumber() == 0)
                  {
                      int islandSize = islandPopulationSize.get();
                      if (islandSize > 0)
                      {
                          int islandCount = populationData.getPopulationSize() / islandSize;
                          populationLabel.setText(islandCount + "x" + islandSize);
                          elitismLabel.setText(islandCount + "x" + populationData.getEliteCount());
                      }
                      else
                      {
                          populationLabel.setText(String.valueOf(populationData.getPopulationSize()));
                          elitismLabel.setText(String.valueOf(populationData.getEliteCount()));
                      }
                  }
                  generationsLabel.setText(String.valueOf(populationData.getGenerationNumber() + 1));
                  elapsedTime = populationData.getElapsedTime();
                  epochTime = 0;
                  timeLabel.setText(formatTime(elapsedTime));
              }
          });
      }
docs: {@inheritDoc}