@Override
    protected void paintComponent(Graphics graphics) {
        super.paintComponent(graphics);

        // If we don't have a placeholder or there is text continue
        if (placeholder.isEmpty() || !getText().isEmpty()) {
            return;
        }

        // Render the placeholder text
        Graphics2D g2d = (Graphics2D) graphics;
        g2d.setRenderingHint(
            RenderingHints.KEY_ANTIALIASING,
            RenderingHints.VALUE_ANTIALIAS_ON
        );
        g2d.setColor(getDisabledTextColor());
        g2d.drawString(
            placeholder,
            getInsets().left,
            g2d.getFontMetrics().getMaxAscent() + getInsets().top
        );
    }