@Override protected void paintComponent(Graphics g) {
        int height = getHeight();
        int xDelta = xDeltaBase;
        int yDelta = 0;
        if (showArrow) {
            Object old = ((Graphics2D) g).getRenderingHint(
                    RenderingHints.KEY_ANTIALIASING);
            ((Graphics2D) g).setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                RenderingHints.VALUE_ANTIALIAS_ON);
            yDelta = (height / 2) + 1 - (HEIGHT_ARROW / 2);
            xDelta -= X_MARGIN_ARROW;
            g.translate(X_MARGIN_ARROW, yDelta);
            g.setColor(arrowColor);
            g.fillPolygon(X, Y, X.length);
            ((Graphics2D) g).setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                old);
        }

        g.translate(xDelta, -yDelta);
        {
            boolean resetEnabled = inner.isEnabled();
            inner.setEnabled(isEnabled());
            painter.paintComponent(g, inner, this, 0, 0, width - xDeltaBase,
                height);
            inner.setEnabled(resetEnabled);
        }
    }
@Override protected void paintComponent(Graphics g)