You are on page 1of 8

Universidad Privada San Pedro Tcnicas De Programacin II

Ing. Carlos Alberto Zelada Chvez 1


Desarrollar El Siguiente Ejercicio:

1. En un J Frame hacer el siguiente diseo:



Universidad Privada San Pedro Tcnicas De Programacin II


Ing. Carlos Alberto Zelada Chvez 2






Universidad Privada San Pedro Tcnicas De Programacin II


Ing. Carlos Alberto Zelada Chvez 3
Clase Abstracta Figuras (Principal):


public abstract class Figuras
{
public abstract double Area();
public abstract String Nombre();
public abstract void Imprimir(JTextArea Salida);
}

Clase Heredada Circulo:

public class Circulo extends Figuras{
private double radio;
private String nombre;
public Circulo(double r)
{
radio=r;
nombre="Circulo";
}
public void Imprimir(JTextArea JTextSalida)
{
JTextSalida.append("Nombre: "+nombre+" Area:"+Area());
}
public String Nombre()
{
return nombre;
}

public double Area()
{
return 3.14*radio*radio;
}

}



Clase Heredada Cuadrado:


public class Cuadrado extends Figuras{
private double lado;
private String nombre;
public Cuadrado(double l) {
lado = l;
nombre = "Cuadrado";
}
public void Imprimir(JTextArea JTextSalida) {
JTextSalida.append("Nombre: " + nombre + " Area:" + Area());
}
Universidad Privada San Pedro Tcnicas De Programacin II


Ing. Carlos Alberto Zelada Chvez 4
public String Nombre()
{
return nombre;
}
public double Area() {
return lado * lado;
}
}


Clase Heredada Triangulo:


public class Triangulo extends Figuras{
private double base,altura;
private String nombre;
public Triangulo(double b,double a)
{
base=b;
altura=a;
nombre="Triangulo";
}
public void Imprimir(JTextArea JTextSalida)
{
JTextSalida.append("Nombre: "+nombre+" Area:"+Area());
}
public String Nombre()
{
return nombre;
}

public double Area()
{
return (base*altura)/2;
}


}




Clase Arreglo de Objetos ConjuntoFiguras:

public class ConjuntoFiguras {
private Figuras fig[] = new Figuras[30];
private int n;
public ConjuntoFiguras() {
n = 0;
}

Universidad Privada San Pedro Tcnicas De Programacin II


Ing. Carlos Alberto Zelada Chvez 5
public void Agregar(Figuras f) {
fig[n] = f;
n++;
}

public Figuras getFiguras(int x) {
return fig[x];
}
public int getNFiguras() {
return n;
}
public double getAreaTotal() {
double total=0;
for(int i=0;i<getNFiguras();i++) {
total+=fig[i].Area();
}
return total;
}

public void Eliminar(int index) {
for(int i=index;i<getNFiguras()-1;i++) {
fig[index]=fig[i+1];
}
n--;
}
}


Instancia de Clases En El Frame (Clase Grafica)

ConjuntoFiguras CF = new ConjuntoFiguras();
Figuras fig;
Circulo Cir;
Cuadrado Cuad;
Triangulo Tri;


public FRAME() {
initComponents();

Solo escribir este codigo las imagenes *.gif estn en la pagina para bajarlas tri es
el nombre del control que contiene a la imagen.

tri.setIcon(new ImageIcon(getClass().getResource("triangulo2.gif")));
cir.setIcon(new ImageIcon(getClass().getResource("circulo2.gif")));
cua.setIcon(new ImageIcon(getClass().getResource("cuadrado2.gif")));

}



Universidad Privada San Pedro Tcnicas De Programacin II


Ing. Carlos Alberto Zelada Chvez 6
Boton Ingresar (Triangulo):

Tri = new Triangulo(Double.parseDouble(txtBase.getText()),
Double.parseDouble(txtAltura.getText()));
CF.Agregar(Tri);

Boton Nuevo Ingreso (Triangulo):

tri.setVisible(true);
txtAltura.setText("");
txtBase.setText("");
SalidaT.setText("");

Boton Imprimir (Triangulo):

SalidaT.setText("");
fig = Tri;
fig.Imprimir(SalidaT);

Boton Dibujo (Triangulo):

Graphics g = getGraphics();
tri.setVisible(false);
int xl = 0, xa2 = 0;
xl = Integer.parseInt(txtAltura.getText());
xa2 = Integer.parseInt(txtBase.getText());
g.setColor(Color.red);
g.drawLine(400, 300, 400 + xl, 300);
g.drawLine(400 + xl, 300, 400 + xl, 300 + xl);
g.drawLine(400 + xl, 300 + xl, 400, 300);


Boton Ingresar (Cuadrado):

Cuad = new Cuadrado(Double.parseDouble(txtLado.getText()));
CF.Agregar(Cuad);

Boton Nuevo Ingreso (Cuadrado):

cua.setVisible(true);
txtLado.setText("");
SalidaCuad.setText("");

Boton Imprimir (Cuadrado):

SalidaCuad.setText("");
fig = Cuad;
fig.Imprimir(this.SalidaCuad);



Universidad Privada San Pedro Tcnicas De Programacin II


Ing. Carlos Alberto Zelada Chvez 7
Boton Dibujo (Cuadrado):

Graphics g = getGraphics();
cua.setVisible(false);
int xl = 0;
xl = Integer.parseInt(txtLado.getText());
g.setColor(Color.red);
g.drawLine(400, 200, 400 + xl, 200);
g.drawLine(400 + xl, 200, 400 + xl, 200 + xl);
g.drawLine(400 + xl, 200 + xl, 400, 200 + xl);
g.drawLine(400, 200 + xl, 400, 200);

Boton Ingreso (Circulo):

Cir = new Circulo(Double.parseDouble(txtRadio.getText()));
CF.Agregar(Cir);

Boton Nuevo Ingreso (Circulo):

cir.setVisible(true);
SalidaCir.setText("");
txtRadio.setText("");

Boton Imprimir (Circulo):

SalidaCir.setText("");
fig = Cir;
fig.Imprimir(this.SalidaCir);

Boton Dibujo (Circulo):

Graphics g = getGraphics();
cir.setVisible(false);
int tx = Integer.parseInt(txtRadio.getText());
int ty = Integer.parseInt(txtRadio.getText());
g.setColor(Color.red);
g.drawOval(400, 200, tx, tx);

Boton Imprimir (Operaciones):

SalidaActualiza.setText("");
for (int i = 0; i < CF.getNFiguras(); i++) {

CF.getFiguras(i).Imprimir(this.SalidaActualiza);
SalidaActualiza.append("\n");






Universidad Privada San Pedro Tcnicas De Programacin II


Ing. Carlos Alberto Zelada Chvez 8
Boton Area Total (Operaciones):

this.SalidaActualiza.setText("");
this.SalidaActualiza.append("Area Total: " + CF.getAreaTotal());


Boton Dibujo (Triangulo) Evento Mouse: Para que aparezca el TXT hacer doble
clic al pasar el mouse por el botn.

Entered:

txt1.setVisible(true);
txt2.setVisible(true);

Exited:

txt1.setVisible(false);
txt2.setVisible(false);

Nota: Hacer lo mismo para los botones dibujo de cuadrado y de circulo con su respective TXT.

You might also like