Hola. Soy muy principante y me gustaría saber cómo puedo crear y programar dos nuevas clases que permitan conceptualizar un cuadrado y un circulo respectivamente. Considerando utilizar la clase Punto o Linea, dependiendo de las necesidades de la función que te permita dibujar en el marco (JFrame).
Estas son las clases dadas:
Estas son las clases dadas:
Código (java) [Seleccionar]
import javax.swing.JFrame; //nos da oportunidad de generar una ventana
import java.awt.Graphics;
import java.awt.Color;
import java.util.ArrayList;
class Ventana extends JFrame{
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
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //poder cerrarla
}
public void paint(Graphics g){//este metodo ya esta definido
super.paint(g);
g.setColor(Color.blue); //el color es un objeto
//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(){
System.out.println("Puntoinicial [x="+x+",y="+y+"]");
System.out.println("PuntoFinal [x="+a+",y="+b+"]");
}
}
class Punto{
int x,y;
Punto(){
}
Punto(int X, int Y){
x=X;
y=Y;
}
public void imprimeCoordenadas(){
System.out.println("Punto[x="+x+",y="+y+"]");
}
}
class Geometria{
public static void main(String[] args) {
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);
}
}