• Sábado 21 de Septiembre de 2024, 13:29

Autor Tema:  Problema Con Repintado Del Applet  (Leído 1203 veces)

ehlcves

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Problema Con Repintado Del Applet
« en: Jueves 6 de Marzo de 2008, 02:40 »
0
hola a todos,

querria hacer una pregunta sobre applets.
Si tengo uno, el cual considero como contenedor principal de la aplicación, sobre el cual voy añadiendo paneles y demás componentes. Como puedo desde una clase cualquiera acceder al contenedor definido por el Applet? Por ejemplo, suponems que quiero hacer un repintado del Applet, para que dibuje algo con su método paint, pero este repintado lo quiero ordenar desde otra clase distinta al Applet, como lo hago??

Gracias de antemano,

frealgagu

  • Miembro activo
  • **
  • Mensajes: 49
    • Ver Perfil
    • http://frealgagu.4shared.com
Re: Problema Con Repintado Del Applet
« Respuesta #1 en: Jueves 13 de Marzo de 2008, 05:40 »
0
Como está utilizando el Applet como clase principal simplemente tiene que mandar el
objeto Graphics g que utiliza el método paint() para dibujar.
con este objeto puede dibujar desde cualquier método de otra clase.
Por ejemplo:

public void paint(Graphics g)
{
  objClase2.capturarg(g);
}

class Clase2
{
  Graphics grafico;
 
  public void capturarg(Graphics g)
  {
    grafico=g;
  }
}

/*Luego para su utilización simplemente se utiliza dentro de un método de Clase2 como lo haría en el paint*/


frealgagu

  • Miembro activo
  • **
  • Mensajes: 49
    • Ver Perfil
    • http://frealgagu.4shared.com
Re: Problema Con Repintado Del Applet
« Respuesta #2 en: Viernes 11 de Abril de 2008, 10:37 »
0
En realidad y analizandolo mejor, lo que usted necesita es lhacer un repaint desde una clase distinta al Applet verdad?
La mejopr forma de hacerlo es en el momento de crear la clase, dejar que este admita un objeto de la clase Applet. para hacerlo más entendible coloco primero el código y después lo esplico:

public class Aplicacion extends Applet
{
  OtraClase objeto;
  .....
  objeto = new OtraClase(this);
}

class OtraClase
{
  objAplicacion;
  public OtraClase(Aplicacion obj)
  {
    objAplicacion=obj;
  }
  public void metodoCualquiera()
  {
    objetoAplicacion.repaint();
  }
}


Dentro de la clase del Applet creo un objeto de la otra clase desde la que quiero hacer el repaint y le envío el objeto de clase del applet por medio de this.
Luego en el constructor de la otra clase igualo el objeto que llegó a un objeto que corresponda a la clase principal del applet para que así pueda tener acceso a todos los metodos y atributos de la clase principal. De esta forma puedo llamar al repaint dentro de la otra clase instanciando el objeto de esta forma.
Espero haber sido claro con la explicación porque siempre es un poco confusa, pero pregunteme si tiene alguna duda.


ehlcves

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Problema Con Repintado Del Applet
« Respuesta #3 en: Viernes 11 de Abril de 2008, 14:55 »
0
Hola, antes de nada muchas gracias por las dos respuestas.

He conseguido solucionarlo de una forma, aunque no me parecía lo más correcto, es decir, me parecía un poco solución para salir del paso.

Me gusta la idea de la segunda respuesta, eso es a lo que me refería. Voy a ver si puedo hacer los cambios que hagan falta en lo que he hecho para ponerlo de la forma que me dices, que me parece mejor estructurado.

Muchas gracias otra vez, un saludo!