Cita:
Iniciado por chuidiang Hola:
Tal cual lo tienes, pintar es una ventana que pinta una sola figura. El método paint() solo pinta una figura.
Si quieres que la misma ventana pinte varias figuras tendrías que:
- Dentro de pintar, figura, clor, ancho, alto, x e y deberían ser arrays o listas, de foram que el índice 0 de cad uno de ellos sea una figura, el indice 1 otra, etc.
- En vez de pasar los datos en el constructor de pintar, pon un método añadeFigura(......) que añada una nueva figura a una nueva posición del array (en vez de array, igual sería más comodo un ArrayList o LinkedList, que permite añadir).
- El paint() debería tener un bucle para los arrrays, pintando cada figura, más o menos con el código que tienes ahora.
Para que quede mejor, en vez de 6 arrays (figura, clor, x, y, ancho y alto), podías hacer una clase Figura con estos 6 parámetros. Así tu clase pintar tendría un array de Figura y quedaría el código más limpio.
Saludos.
Gracias por aclararme un poco mas el asunto... pero sigo sin poder mostrar las figuras geométricas. es como si en pintar.java nunca se ejecutara el método
paint(Graphicpaints g)
Tengo una nueva clase figura.java
Código Java:
Ver originalpackage graficos2d;
import java.util.Vector;
public class figura {
Vector
<String
> V_tipo
= new Vector(); Vector
<String
> V_color
= new Vector(); Vector
<Integer
> V_x
= new Vector(); Vector
<Integer
> V_y
= new Vector(); Vector
<Integer
> V_alto
= new Vector(); Vector
<Integer
> V_ancho
= new Vector();
public void AddFigura
(String tipo,
String clor,
int x,
int y,
int height,
int width
){
V_tipo.add(tipo);
V_color.add(clor);
V_x.add(x);
V_y.add(y);
V_alto.add(height);
V_ancho.add(width);
System.
out.
println(tipo
+" "+clor
+" "+x
+" "+y
+" "+height
+" "+width
);
}
}
esto es lo que cambio en pintar.java
Código Java:
Ver original@Override
super.paint(g);
figura figura = new figura();
for(int c=0; c<figura.V_tipo.size(); c++){
System.
out.
println("Pintamos");
g.fillOval(figura.V_x.get(c), figura.V_y.get(c), figura.V_ancho.get(c), figura.V_alto.get(c));
}
}
formulario.java
Código Java:
Ver original
int x
= Integer.
parseInt(X.
getText()); int y
= Integer.
parseInt(Y.
getText()); int height
= Integer.
parseInt(alto.
getText()); int width
= Integer.
parseInt(ancho.
getText());
figura figura = new figura();
figura.AddFigura(tipo, clor, x, y, height, width);
Y esto seria el Main.java
Código Java:
Ver originalpublic static void main
(String[] args
) {
formulario form = new formulario();//Interfaz Gráfica
pintar pintar = new pintar();//Interfaz Gráfica donde se ven las figuras geométricas dibujadas
}