public Component getColorDropdown()
  {
    if (colorDropdown == null)
    {
      colorDropdown = new JComboBox<Color>();
      colorDropdown.setRenderer(new ListCellRenderer<Color>()
      {
        @Override
        public Component getListCellRendererComponent(JList<? extends Color> list, final Color value, int index,
            boolean isSelected, boolean cellHasFocus)
        {
          JLabel label = new JLabel(value.getRed() + ", " + value.getGreen() + ", " + value.getBlue());
          label.setIconTextGap(10);
          label.setIcon(new Icon()
          {
            @Override
            public void paintIcon(Component c, Graphics g, int x, int y)
            {
              Graphics2D paint = (Graphics2D) g.create();
              paint.setColor(value);
              paint.fillRect(2, 2, getIconWidth() - 4, getIconHeight() - 4);
            }

            @Override
            public int getIconWidth()
            {
              return 16;
            }

            @Override
            public int getIconHeight()
            {
              return 16;
            }
          });
          return label;
        }
      });

      for (Color color : DEFAULT_COLORS)
      {
        ((DefaultComboBoxModel<Color>) colorDropdown.getModel()).addElement(color);
      }

      colorDropdown.setSelectedItem(converter.getNonterminatingColor());

      colorDropdown.addItemListener(new ItemListener()
      {
        @Override
        public void itemStateChanged(ItemEvent e)
        {
          converter.setNonterminatingColor((Color) e.getItem());
        }
      });
    }
    return colorDropdown;
  }