Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/04/2011, 10:39
sonia949
 
Fecha de Ingreso: abril-2011
Mensajes: 10
Antigüedad: 13 años, 1 mes
Puntos: 0
dibujar lista enlazada

Hola,

estoy empezando a programar y tengo un error en un codigo. El objetivo es hacer una lista enlazada y dibujarla, cada nodo como un circulo y unirlos entre ellos. Yo tengo mi codigo CircleDraw, q hereda de Frame, y a este quiero pasarle los nodos, de manera q con getX() y getY() obtenga sus coordenadas. y aqui me da este fallo:

Exception in thread "main" java.lang.NullPointerException
at CircleDraw.<init>(CircleDraw.java:21)
at prueba.main(prueba.java:19)



os dejo el codigo del CircleDraw:


import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;

public class CircleDraw extends Frame {
private Nodo n1;
private Nodo n2;

//constructor
public CircleDraw (Nodo a, Nodo b) {
n1=a;
n2=b;
}

int x1=n1.getX();
int y1=n1.getY();
int x2=n2.getX();
int y2=n2.getY();



Shape circle = new Ellipse2D.Double ( x1 , y1 , 50 , 50 ) ;//los dos ultimos parametros son la anchura y altura del circulo
Shape circle2 = new Ellipse2D.Double ( x2 , y2 , 50 , 50 ) ;//los dos primeros parametros son la x y la y del centro

public void paint ( Graphics g ) {
Graphics2D ga = ( Graphics2D ) g;
ga.draw ( circle ) ;
ga.draw(circle2);
ga.setPaint ( Color.blue ) ;
ga.drawLine (425,425,125,125);
ga.fill(circle);
ga.fill(circle2);
}

}


y donde tengo el main:


public class prueba{
public static void main ( String args []) {

// Creamos la lista
Nodo n1=new Nodo(200,200);
Nodo n2=new Nodo(200,100);
Lista lista = new Lista ();
lista.insertarFinal ( n1 );
lista.insertarFinal ( n2 );

CircleDraw circulo1=new CircleDraw(n1,n2);
Frame frame = circulo1 ;
frame.addWindowListener ( new WindowAdapter (){
public void windowClosing ( WindowEvent we ){
System.exit ( 0 ) ;
}
});
frame.setSize ( 650 , 650 ) ;
frame.setVisible ( true ) ;
}
}



alguien puede ayudarme??

gracias!