Duvida sobre metodo Paint()

1 resposta
G

Olá pessoal. Sou novo no GUJ mas já ouvi falar do forum como referencia para programadores em java por isso venho pedir ajuda para resolver um problema. Estou pagando computação gráfica e tenho que fazer alguns algoritmos de primitivas (retas, circulos,etc). MInha dificuldade é a seguinte: quero criar uma painel dentro de um frame onde no painel serão feitos os desenhos só que eu não consigo acessar o contexto gráfico do painel para desenhar. Eu venho tentando conforme o código abaixo:

JPanel paineldesenho = new JPanel();
		paineldesenho.setSize(20, 20);
		paineldesenho.setLocation(300, 100);
		
		Graphics g = paineldesenho.getGraphics();
   //Fazer eixo cartesiano
		g.drawLine(paineldesenho.getSize().width/2, 0, paineldesenho.getSize().width/2, paineldesenho.getSize().height/2);
		g.drawLine(0,paineldesenho.getSize().height/2 , paineldesenho.getSize().width, paineldesenho.getSize().height/2);
		paineldesenho.paint(g);

Quando mando rodar a app dá erro na linha do 1º drawLine() gostaria de saber por que isso ocorre. Não dá pra usar o Paint() fora de um método construtor sem ser por herança?

Aguardo resposta obrigado.

1 Resposta

davidbuzatto

Vc tem que criar seu próprio painel, herdando de JPanel e sobrescrevendo o método paintComponent.
Chamadas explícitas ao método paintComponent não devem ser feitas. Para forçar o desenho do painel vc deve chamar o método repaint.

[]'s

Criado 12 de setembro de 2011
Ultima resposta 12 de set. de 2011
Respostas 1
Participantes 2