Dibujar sin que se borre lo ya dibujado

hola stoy haciendo un juego el del ahorcado y todo bien hasta q cuando tngo que redibujar en pantalla por ejemplo si ya tenia pintada una letra y luego presiona otra letra ya sea que ste o no esta me borra todas las letras o letra q ya tenia. stoy utlizando el metodo de repaint();

amarillo <- - - Palabra secreta

- - - - - - - - <-- Donde van las letras a descubrir

en este caso presiono la letra a y sale

a _ a _ _ _ _ _ <-- letras encontradas

y si presiono una letra que no esta en este caso u

O <--Pinta la cara del mono
_ _ _ _ _ _ _ _

pero ya se me borraron las letras q habia encontrado esto pasa tanto con el dibujo como con las letras este bien o mal todo se borra y se dibuja lo ultimo que se captur. como le puedo hacer para q no suceda sto.

Leyendo encontre que se utilizaba el metodo update y que ste metodo llamara a mi metodo donde dibujo paintComponent pero no me sale. ahora dibuja los cambios en la pantalla cada vez que la minimizo y la maximizo, pero presenta el mismo probelama anteriormente.

public void update(Graphics g)
{
paintComponent(g);
}

public void paintComponent(Graphics g)
{
Graphics2D g2=(Graphics2D)g;

//Dibuja Nombre del jugador
g2.setColor(Color.BLUE);
g2.setFont(new Font("Arial", Font.BOLD, 25));
g2.drawString("Player 1", 250, 50);
.
.
. etc.
}

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

me pasa lo mismo y no se que

me pasa lo mismo y no se que hacerrrrrrrr dibujo algo pero al minimizar y volver a maximizar la ventada se borra todo...

Imagen de julgo

si no es muy importante que

si no es muy importante que cambie de tamaño puedes poner setResizable(false);para impedir que se maximize , aunque de todas maneras cuando el frame salga de la pantalla te pasara lo mismo y se borrara todo.
y si guardas las letras o palabras en una lista variable y en cada llamada a repaint las dibujas?