Entendendo o Swing

3 respostas
faeldix

Pessoal fiz o seguinte:

package br.com.game;

import java.awt.Graphics;

import javax.swing.JFrame;

public class Main extends JFrame {

	public Main() {
		super();
		setSize(400, 300);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	public static void main(String[] args) {
		Main inicio = new Main();
		inicio.setVisible(true);
	}

	@Override
	public void paint(Graphics g) {
		// 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'.

3 Respostas

ViniGodoy

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 :stuck_out_tongue:

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í.

Ah! Dá uma lida nesse tutorial. Ele é rápido e já dá várias dicas legais:
http://www.cokeandcode.com/info/tut2d.html

Criado 22 de agosto de 2012
Ultima resposta 23 de ago. de 2012
Respostas 3
Participantes 2