Estas son las clases dadas:
Código
import javax.swing.JFrame; //nos da oportunidad de generar una ventana import java.awt.Graphics; import java.awt.Color; import java.util.ArrayList; ArrayList<Punto> puntos = new ArrayList<Punto>(); //permite almacenar varios puntos ArrayList<Linea> linea = new ArrayList<Linea>(); public Ventana(){ //constructor this.setSize(500,500);//tamaño this.setTitle("Puntos con linea "); //titulo de la ventana no es necesario this.setLocationRelativeTo(null); //posicionamiento de la ventana } super.paint(g); //g.drawLine(50,50,150,150); //dibuja resiviendo las cordenadas iniciales y finales en este caso se dibuja el punto nadamas for (int i = 0; i<puntos.size(); i++){ g.drawOval(puntos.get(i).x,puntos.get(i).y,3,3); g.drawLine(linea.get(i).x,linea.get(i).y,linea.get(i).a,linea.get(i).b); } } public void setPunto(Punto p){ puntos.add(p); //añade en el array list el punto } public void setLinea(Linea l){ linea.add(l); } } class Linea{ int x,y,a,b; Linea(){ } Linea(Punto p1, Punto p2){ x=p1.x; y=p1.y; a=p2.x; b=p2.y; } public void imprimeCoordenadas2(){ } } class Punto{ int x,y; Punto(){ } Punto(int X, int Y){ x=X; y=Y; } public void imprimeCoordenadas(){ } } class Geometria{ Punto p1 = new Punto(100,100); Punto p2 = new Punto(200,200); Linea l1 = new Linea(p1,p2); p1.imprimeCoordenadas(); Ventana frame = new Ventana(); frame.setPunto(p1); frame.setPunto(p2); frame.setLinea(l1); frame.setVisible(true); } }