Como inicializar uma variável do "tipo" Graphics?

7 respostas
Matchola

Então pessoal,
Eu estou com um problema e gostaria que me ajudassem.
Eu não consigo inicializar uma variável Graphics do jeito
“tradicional”: Graphics grafico = new Graphics();
E como eu não há inicializo, quando eu tento usar para
passar como parâmetro para o método paint(Graphics g)
acaba lançando:[color=blue]java.lang.NullPointerException[/color]

Obrigado a quem poder ajudar.

7 Respostas

T

Um objeto do tipo Graphics não pode ser criado; ele só pode ser copiado, usando-se o método Graphics.create.

fabiofalci

Vc pode criar um a partir de uma imagem, assim:

BufferedImage offscreen = new BufferedImage(800, 600, 1);
Graphics2D buffer = (Graphics2D) offscreen.getGraphics();

Isso é usado quando se quer usar double buffered no Java2D.

G

Olha que exemplo legal:

http://www.uta.fi/~jl/pguibook/examples/SimpleGraphics_Java/SimpleGraphics.java

flw.

B

O java.awt.Graphics é uma classe dependente de JVM… tipo, no Linux tem uma implementação, no windows outra… e por ai vai, então vc não consiguirá criar uma…
só pra levantar a bola, o metodo paint(Graphics) quer vc tá falando é do Component??? pois se for, e vc tiver sobrescrevendo-o é só vc invocar o updateUI() no container que contem este componete que este metodo será invocado… seguindo toda a estrutura do paint, paintComponent e por ai vai.

Marky.Vasconcelos

E pelo o que eu vi voce esta tentando passar um Graphics par ao método paint?

Esse método já recebe um Graphics se voce quiser trabalhar desenhando na tela use o que ele recebe por parametro. E de certa forma, nem se preocupe de onde ele vem.

fabiofalci

Só uma dica.
Prefira usar repaint ao invés de updateUI pois este ultimo é mais custoso.

Dá um lida aqui
http://www.coderanch.com/t/333435/Swing-AWT-SWT-JFace/java/Whats-exact-difference-between-paint

Matchola

Vlw td mundo ai vo ver tds os exemplos

Criado 27 de março de 2009
Ultima resposta 27 de mar. de 2009
Respostas 7
Participantes 6