Aqui tengo las clases de cada una de las figuras Elipse, como so cortas las pondre todas en este mismo post. Repito son clases diferentes, no copiar y pegar en la misma clase. Hay que crear clases diferentes para los tres tipos de figuras
Clase Elipse
La clase Poligono
Y la clase Rectangulo
Saludos
Clase Elipse
Código [Seleccionar]
package figuras;
import java.awt.Color;
import java.awt.Graphics;
public class Elipse extends Figura {
public Elipse(int ancho, int alto, int v, int tipo, int minX, int minY,
int maxX, int maxY, Color color) {
super(ancho, alto, v, tipo, minX, minY, maxX, maxY, color);
}
public void paint(Graphics g) {
g.setColor(color);
g.fillOval(x, y, ancho, alto);
}
}
La clase Poligono
Código [Seleccionar]
package figuras;
import java.awt.*;
import java.awt.Color;
import java.awt.Graphics;
public class Poligono extends Figura
{
int px[], py[];
public Poligono (int lados, int radio, int v, int tipo, int minX, int minY,
int maxX, int maxY, Color color) {
super(radio, radio, v, tipo, minX, minY, maxX, maxY, color);
px = new int [lados];
py = new int [lados];
double inc = 2*Math.PI/ (double)lados;
double angulo = 0.0;
for (int i=0; i<lados; i++){
px[i] =(int)((int)Math.round(radio * Math.cos(angulo)) + radio + x);
py[i] =(int)((int)Math.round(radio * Math.sin(angulo)) + radio + y);
angulo += inc;
}
}
public void paint(Graphics g)
{
g.setColor(color);
g.fillPolygon(px, py, px.length);
}
public void mover(){
int xaux = x, yaux= y;
super.mover();
int dx = x -xaux , dy = y - yaux;
for (int i = 0; i<px.length; i++){
px[i] += dx;
py[i] += dy;
}
}
}
Y la clase Rectangulo
Código [Seleccionar]
package figuras;
import java.awt.Color;
import java.awt.Graphics;
public class Rectangulo extends Figura {
public Rectangulo(int ancho, int alto, int v, int tipo, int minX, int minY,
int maxX, int maxY, Color color) {
super(ancho, alto, v, tipo, minX, minY, maxX, maxY, color);
}
public void paint(Graphics g) {
g.setColor(color);
g.fillRect(x, y, ancho, alto);
}
}
Saludos