code: public int select(final List<? extends JComponent> renderedEntities)
      {
          selectedIndex.set(-1);
          SwingUtilities.invokeLater(new Runnable()
          {
              public void run()
              {
                  removeAll();
                  int index = -1;
                  for (JComponent entity : renderedEntities)
                  {
                      add(new EntityPanel(entity, ++index));
                  }
                  revalidate();
              }
          });
          waitForSelection();
          return selectedIndex.get();
      }
docs: This method blocks and therefore must not be invoked from the Event
  Dispatch Thread.
  {@inheritDoc}