packagebr.com.game;importjava.awt.Graphics;importjavax.swing.JFrame;publicclassMainextendsJFrame{publicMain(){super();setSize(400,300);setLocationRelativeTo(null);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}publicstaticvoidmain(String[]args){Maininicio=newMain();inicio.setVisible(true);}@Overridepublicvoidpaint(Graphicsg){// TODO Auto-generated method stub//super.paint(g);}}
pelo o que entendi. o metodo paint() é quem 'pinta' a tela..
eu sobrescrevi ele.. pra ver o que aconteceria..
mas não aconteceu nada.. a tela continua sendo 'pintada'.
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.
faeldix
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()
é possivel dele vir nulo???
ViniGodoy
Depende de como ele implementou o método createImage().
De qualquer forma, é uma péssima prática carregar a imagem dentro do Render, mesmo que de forma lazy, como ele fez aí.