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!