Ele pinta o conteúdo da tela, mas não as bordas e os botões.
Além disso, o sistema operacional faz a limpeza básica do JFrame, portanto, não espere uma janela transparente.
Mas a graça está em justamente usar o Graphics recebido para desenhar coisas num jogo, por exemplo.
Outra coisa, movi seu tópico para o fórum de interface gráfica.
viny… peguei esse codigo no livro Kill Games bla bla bla java
so nao entendi o pq dele ter feito essa validacao
if (dbImage == null) {
System.out.println("dbImage is null");
return;
codigo completo:
// global variables for off-screen rendering
private Graphics dbg;
private Image dbImage = null;
:
private void gameRender()
// draw the current frame to an image buffer
{
if (dbImage == null){ // create the buffer
dbImage = createImage(PWIDTH, PHEIGHT);
if (dbImage == null) {
System.out.println("dbImage is null");
return;
}
else
dbg = dbImage.getGraphics();
}
// clear the background
dbg.setColor(Color.white);
dbg.fillRect (0, 0, PWIDTH, PHEIGHT);
// draw game elements
...
if (gameOver)
gameOverMessage(dbg);
} // end of gameRender()