@Override
  public void paint(Graphics g, JComponent c) {
    checkFocus();
    Container parent = c.getParent();
    if (parent != null && c.isOpaque()) {
      g.setColor(DarculaUIUtil.isTableCellEditor(c) && editor != null ? editor.getBackground() : parent.getBackground());
      g.fillRect(0, 0, c.getWidth(), c.getHeight());
    }

    Graphics2D g2 = (Graphics2D)g.create();

    if (comboBox.getBorder() instanceof DarculaComboBoxBorder comboBoxBorder && isNewBorderSupported(comboBox)) {
      comboBoxBorder.paintComboBoxBackground(g2, comboBox, getBackgroundColor());
    }
    else {
      try {
        Rectangle r = new Rectangle(c.getSize());
        JBInsets.removeFrom(r, myBorderCompensation);
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        g2.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_NORMALIZE);
        g2.translate(r.x, r.y);

        float bw = isBorderless(c) ? LW.getFloat() : BW.getFloat();

        g2.setColor(getBackgroundColor());
        g2.fill(getOuterShape(r, bw, myArc));
      }
      finally {
        g2.dispose();
      }
    }

    if (!comboBox.isEditable()) {
      paintCurrentValue(g, rectangleForCurrentValue(), hasFocus);
    }
    // remove staled renderers from hierarchy
    // see BasicTreeUI#paint
    // see BasicListUI#paintImpl
    // see BasicTableUI#paintCells
    currentValuePane.removeAll();
  }
@Override
  public void paint(Graphics g, JComponent c)