Dúvida sobre o paint

5 respostas
E

Olá pessoal... não sei se estou colocando minha pergunta na seção correta, mas creio que seja uma coisa simples de resolver...

Estou criando um JApplet com duas classes: MyLine.java e Testezinho.java. Como deu pra perceber, Testezinho testa MyLine...

Testezinho:

import javax.swing.*;
import java.awt.*;

public class Testezinho extends JApplet
{        
    public void init()
    {
        int x1 = 20;
        int y1 = 32;
        int x2 = 400;
        int y2 = 210;

        MyLine lines = new MyLine(x1, y1, x2, y2);
    }
    
    MyLine line;

    public void paint(Graphics g)
    {  
         line.draw(g);
        
    }   

}

MyLine:

import java.awt.*;

public class MyLine extends Testezinho
{
    int x1, y1, x2, y2;

    MyLine(int x1, int y1, int x2, int y2)
    {                

        this.x1 = x1;
        this.y1 = y1;
        this.x2 = x2;
        this.y2 = y2;
        
    }

    public void draw(Graphics g)
    {
        super.paint(g);

        g.drawLine(x1, y1, x2, y2);
    }
}

O problema é o seguinte:

Eu preciso desenhar uma reta utilizando o drawLine que está dentro de MyLine.
Porém, quando vou rodar o Applet, sempre dá NullPointerException. Creio que o problema esteja no método draw(Graphics g).

Fiquei praticamente o dia todo tentando resolver isso e até agora não consegui. :(

Alguém pode me ajudar?

[]'s

5 Respostas

pmlm

line não foi inicializada, está a null.

Jrmanzini

certeza, não foi inicializada

E

Não coloquei aí nesse código, mas em MyLine existe um outro método construtor sem argumentos de entrada que inicializa as váriaveis com 0. Resumindo:

MyLine line = new MyLine(x1, y1, x2, y2); // Inicializa as variáveis com os valores fornecidos

MyLine line = new MyLine(); //Inicializa as variaveis com 0

Agora, como posso inicializar o line ?

E

Alguém ???

pmlm

Na classe Testezinho estás a criar um objecto e a tentar desenhar outro. Provavelmente o que pretendes é criar e desenhar o mesmo objecto.

import javax.swing.*;  
 import java.awt.*;  
   
 public class Testezinho extends JApplet   {          

     MyLine line;      
    
     public void init()       {  
         int x1 = 20;  
         int y1 = 32;  
         int x2 = 400;  
         int y2 = 210;  
   
         line = new MyLine(x1, y1, x2, y2);  
     }  
       

   
     public void paint(Graphics g)  
     {    
          line.draw(g);  
           
     }     
   
 }
Criado 22 de maio de 2009
Ultima resposta 26 de mai. de 2009
Respostas 5
Participantes 3