Erro de renderização de transparência do Java

Atualmente estou desenvolvendo um programa em Java estilo quiosque para exibir tempo, tempo, previsão, etc. Aqui está uma imagem do que o programadevemos parece (screenshot tirada antes da hora atualizada)

As várias seções são criadas como JPanels com opaintComponent() método substituído. Eles desenham um cabeçalho gradiente e um fundo semitransparente. No entanto, quando altero o conteúdo de um desses painéis, o conteúdo anterior é deixado para trás, em vez de ser removido. Um exemplo é mostrado abaixo:

Como você pode ver, quando o tempo mudou de 11:51 para 11:52, os números se sobrepuseram, e o plano de fundo ficou mais claro (porque o plano de fundo semitransparente foi redesenhado sobre ele)

O erro gráfico

O que devo fazer para evitar essa sobreposição? Por fim, prefiro não ter que redesenhar toda a tela quando um painel individual atualizar seu conteúdo. Eu preferiria apenas redesenhar essa seção em particular. Seria fácil repintar o fundo e depois todos os componentes.

Atualizar

Várias respostas envolvem limpar a área a ser desenhada. Se eu usog.clear() ouAlphaComposite.CLEAR apaga a imagem de fundo. Isso pode ser visto na imagem a seguir. Talvez, se eu pudesse copiar o plano de fundo antes de limpar a área, eu pudesse repintar essa seção do plano de fundo e, em seguida, sobrepor as outras imagens adequadamente. Pensamentos?

Atualização 2

Foi enviada uma resposta que mostra um exemplo de trabalho completo de um temporizador colocado sobre um painel transparente e um fundo. Isso é muito útil, no entanto, não estou pintando meus sub-componentes manualmente. A hora, os ícones do tempo e as temperaturas são todos os JLabels dispostos sobre o painel semitransparente. Eu preferiria não ter que pintar os componentes individuais manualmente.

questionAnswers(3)

yourAnswerToTheQuestion