Paint repaint - JBUtton

Pessoal,

Andei estudando Java2D, fiz testes, e iniciei um pequeno aplicativo de um jogo.
Tenho um JFrame e nesse JFrame adicionei um JButton pela ferramente WindowBuilder SWT (GUI Designe)
No JFrame estou desenhando uma imagem de fundo (preenchimento total) utilizando o drawImage do java.awt.Graphics.

Quando eu executo o aplicativo eu chamo o método paint() e desenho a imagem, porém, o Java chama automaticamente, acho eu, a mesma classe paint(), então a imagem some e fica só o JButton. Para contornar isso coloquei no final do metodo paint() um repaint(), então o aplicativo executa e fica correto na tela a imagem de fundo, porém o JButton fica atras da imagem.

Estou correto em utilizar o JButton, como componente? ou deveria usar tudo desenhando na tela?

Alguém pode me introduzir basicamente ess co-relação ou relação propriamente dita dos componente com o drawImage?

Obrigado.

Um lugar bom para aprender Java2D e jogos é aqui.

flw :thumbup:

Não programe por tentativa e erro. Siga os links do pessoal, estude o funcionamento do Java 2D, e só depois implemente alguma coisa.

Por exemplo, você não deveria chamar repaint() ao final do método paint(). Isso é conceitualmente errado.
Aliás, você não deveria sequer sobrescrever o método paint, em Swing, o correto é usar o paintComponent.