Tutorial applet figura
Primero, el programa esta compuesto por 3 paquetes: físico, lógico y presentación.
PAQUETE LOGICA
Este paquete esta compuesto por las clases que se encargan de hacer los cálculos y de graficar, además de otras cosas.
CIRCULO
Primero se declaran las variables como la ubicación y el radio del circulo, luego se agrega elconstructor con las variables .Como podemos ver la clase circulo hereda de la clase geometría, la cual contiene los métodos abstractos para poder hallar el área y el perímetro del circulo.
public class Circulo extends Geometria {
static int numCirculos = 0;
public static final double PI=3.14159265358979323846;
public double x, y, r;
public Circulo(double x, double y, double r) {
this.x=x;this.y=y; this.r=r;
numCirculos++;
}
public Circulo(double r) { this(0.0, 0.0, r); }
public Circulo(Circulo c) { this(c.x, c.y, c.r); }
public Circulo() { this(0.0, 0.0, 1.0); }
A continuación, agregamos las funciones como el área, el perímetro y las comparaciones de los círculos.
public double perimetro() { return 2.0 * PI * r; }
public double area() { return PI * r * r; }public Circulo elMayor(Circulo c) {
if (this.r>=c.r) return this; else return c;
}
public static Circulo elMayor(Circulo c, Circulo d) {
if (c.r>=d.r) return c; else return d;
}
}
CIRCULO GRAFICO
Esta clase hereda de la clase círculo, y por lo tanto sus variables, e implementa la interfase dibujable, además debemos importar algunas librerías de awt.
import java.awt.Graphics;import java.awt.Color;
public class CirculoGrafico extends Circulo implements Dibujable {
Color color;
Ahora hacemos el constructor, el súper se usa para incluir las variables que se encuentran en la clase circulo.
public CirculoGrafico(double x, double y, double r, Color unColor) {
super(x, y, r);
this.color = unColor;
}
Estos son los métodos de la interfase Dibujable que captura losvalores de su posición y tamaño.
public void dibujar(Graphics dw) {
dw.setColor(color);
dw.drawOval((int)(x-r),(int)(y-r),(int)(2*r),(int)(2*r));
dw.fillOval((int)(x-r),(int)(y-r),(int)(2*r),(int)(2*r));
}
public void setPosicion(double x, double y) {
;
}
DIBUJABLE
Esta es la interfase del programa que contiene los métodos que captan la posición y del dibujo de las figuras.import java.awt.Graphics;
public interface Dibujable {
public void setPosicion(double x, double y);
public void dibujar(Graphics dw);
}
GEOMETRIA
Esta clase es la abstracta que contiene los métodos de área y perímetro de las figuras.
public abstract class Geometria {
public abstract double perimetro();
public abstract double area();
}
PANEL DIBUJO
Esta clase es lautilizada para dibujar las figuras en el ejecutable, esta clase usa un panel de awt para dibujar.
import java.awt.*;
import java.util.ArrayList;
import java.util.Iterator;
public class PanelDibujo extends Panel {
private ArrayList v;
Este es el constructor que contiene una variable arraylist para poder dibujar las figuras que se deseen.
public PanelDibujo(ArrayList va) {
super(newFlowLayout());
this.v = va;
}
Esta función dibuja las figuras y por medio de un ciclo se dibuja una por una hasta que termine el ciclo, además contiene un objeto de la clase dibujable.
public void paint(Graphics g) {
Dibujable dib;
Iterator it;
it = v.iterator();
while(it.hasNext()) {
dib = (Dibujable)it.next();
dib.dibujar(g);
}
RECTANGULO
Esta clase también hereda dela clase Geometría, ya que también usa sus métodos de área y perímetro. Aquí se declaran las variables de posición inicial en los ejes X y Y: p1x y p1y; y los de posición final p2x y p2y.
public class Rectangulo extends Geometria {
private static int numRectangulos = 0;
protected double x1, y1, x2, y2;
public Rectangulo(double p1x, double p1y, double p2x, double p2y) {
x1 = p1x;
x2 =...
Regístrate para leer el documento completo.