Transparência desaparece gradualmente de um jPanel quando mudo a sua cor

Tenho um jPanel dentro de outro. Quando passo o mouse sobre o jPanel interno quero que este mude de cor. Para isto utilizo setBackground e passo como parâmero uma cor (incluindo o valor do alpha).

A ideia é que quanto o mouse fica sobre ele o painel deve ficar um pouco mais opaco e quanto tiro o mouse dele o painel deve ficar um pouco mais transparente.

O problema é que ao invés de alternar a transparência ele vai ficando gradualmente mais opaco até atingir a opacidade máxima. Como resolvo isso?

Acredito que será mais fácil sobrescrever o método paintComponent(); do JPanel ao invés de usar o método setBackground();

Ok, vou tentar isso! Obrigado!

Eu implementei no braço de deu na mesma.

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

        Graphics2D g2d = (Graphics2D) g.create();
        g2d.setBackground(this.selectedBackground);
        
        if (this.selected) {
            g2d.setColor(this.selectedBackground);
        } else {
            g2d.setColor(this.unselectedBackground);
        }        
        Rectangle rectangle = new Rectangle(getSize());
        g2d.fill(rectangle);
        g2d.dispose();



    }