Cordial Saludo
Aunque esta pregunta tiene el mismo fin que otra pregunta formulada por mí, cambia la forma de implementar el objetivo.
Primero declaro una clase:
Código Java:
Ver original
class Object2D { Color mc; int TipoObjeto; static int mLINE = 1; static int mRECT = 2; int X0,Y0, X1,Y1; float ms; Graphics mg; mg = g; mc = c; ms = s; TipoObjeto = t; X0 = x0; Y0 = y0; X1 = x1; Y1 = y1; } void ViewObject2D(){ g2d.setColor(mc); g2d.setPaintMode(); if (TipoObjeto==mLINE){ } if (TipoObjeto==mRECT){ } } }
Ahora detallo la forma en que uso la clase:
Creo un vector del tipo de la clase llamado ObjectVector
Creo un método que llena el vector con dos objetos
Creo un método que muestre el contenido del vector
Código Java:
Ver original
/** Creates new form Graficador */ Vector<Object2D> ObjectVector = new Vector<Object2D>(); Graphics g1d; ... //Crea dos objetos uno tipo Linea y otro tipo Rectangulo } public void DrawVector(){ //Dibuja el contenido del vector if(!VectorObjeto.isEmpty()){ for (int i = 0; i<ObjectVector.size();i++){ ObjectVector.elementAt(i).ViewObject2D(); } } } ...
Explicación de lo anterior..
El método paint obtiene un objeto de tipo Graphics
Inicializa una variable de tipo Graphics llamada g1d ..esto con el objetivo de usarlo posteriormente
llena el vector con dos objetos FillVector(g); y luego dibuja el vector DrawVector();...
Código Java:
Ver original
this.g1d = g; super.paint(this.g1d); FillVector(g); DrawVector(); } FillVector(this.g1d); repaint(); }
Pregunta:
¿Habrá alguna forma de que después de presionar el botón jbDibujar se dibuje realmente lo requerido y no cuando se llame paint()?;
Es decir que paint solo serviría para inicializar el objeto graphics y dibujar los objetos contenidos en el vector ObjectVector.
Código Java:
Ver original
this.g1d = g; super.paint(this.g1d); DrawVector(); }
¿Será posible de hacer lo requerido así sea usando otro método?
Gracias...