Estou criando uma aplicação que ao clicar em um botão seja desenhado algo. mas se a janela for redimensionada o desenho apaga. quero manter o desenho intacto.
Segue o código que esta dentro do botão.
Você não precisa chamar o paintComponent diretamente, ele é chamado automaticamente. Basta adicionar seu JPanel customizado num JFrame. Para forçar a atualização, você pode chamar o método repaint() ou revalidate() do JFrame ou do JPanel (não lembro qual deles é necessário, ou se precisa ambos).
Outra dica é iniciar sua janela usando a thread do Swing, que cuida da atualização de componentes na tela, dentre outras coisas. Exemplo: