@Override
  public void paintIcon(Component c, Graphics g, int x, int y) {
    // Draw icon
    int height = getIconHeight();
    int iconHeight = myIcon.getIconHeight();
    if (height > iconHeight) {
      myIcon.paintIcon(c, g, x, y + (height - iconHeight) / 2);
    }
    else {
      myIcon.paintIcon(c, g, x, y);
    }

    // Draw text
    if (myStrings != null) {
      Font font = StartupUiUtil.getLabelFont();
      FontMetrics fontMetrics = Toolkit.getDefaultToolkit().getFontMetrics(font);
      g.setFont(fontMetrics.getFont());
      g.setColor(UIUtil.getLabelForeground());

      x += myIcon.getIconWidth() + 5;
      y += (height - getTextHeight()) / 2 + fontMetrics.getHeight() - fontMetrics.getDescent();
      for (String string : myStrings) {
        g.drawString(string, x, y);
        y += fontMetrics.getHeight();
      }
      if (myMnemonic != null) {
        g.setColor(NamedColorUtil.getInactiveTextColor());
        int offset = fontMetrics.stringWidth(myStrings[myStrings.length-1]+" ");
        y -= fontMetrics.getHeight();
        g.drawString(myMnemonic, x + offset, y);
      }
    }
  }
@Override
  public void paintIcon(Component c, Graphics g, int x, int y)