Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Java (http://www.forosdelweb.com/f45/)
-   -   Repetir un Proceso (http://www.forosdelweb.com/f45/repetir-proceso-517147/)

bilkarm3 05/09/2007 21:33

Repetir un Proceso
 
Hola... bueno, no hace mucho escribí por el problema de un ScreenSaver, bueno ya detecto el movimiento del Mouse... ahora el problema es otro al parecer más sencillo, pero no le encuentro por donde.

Resulta cuando un ciclo se repite, visualmente se hace, pero el detalle es que la primera vez lo hace en una ventana y la segunda vez, en otra diferente y así sucesivamente.

Código PHP:

public RastreadorRaton()
   {
      
super"Demostración de los eventos de ratón" );

      
barraEstado = new JLabel();
      
//getContentPane().add( barraEstado, BorderLayout.SOUTH );
    
      
addMouseListenerthis );        // escucha sus propios eventos de ratón
      
addMouseMotionListenerthis );  // y de movimiento de ratón

      
setSize475430 );
      
setVisibletrue );
      
//pinta(0);
   


Esto es lo que abre en la ventana, y esto es lo que hago para que se repita el proceso:

Código PHP:

RastreadorRaton aplicacion = new RastreadorRaton(); 

¿De qué otra forma puedo hacer el llamado sin que se habrá en otra nueva ventana?

Gracias y saludos.

chuidiang 06/09/2007 05:15

Re: Repetir un Proceso
 
Hola:

Por el código me hace la impresión de que RastreadorRaton hereda de una ventana -JFrame, JDialog o JWindow- y en el constructor la haces visible. De esta forma siempre saldrá una nueva ventana.

No sé si te vale, pero una opción es no hacer herencia, sino declarar un atributo static a la clase RastreadorRaton

Código:

private static JFrame ventana = null;
Luego, en el constructor de RastreadorRaton, si es null, la creas e inicializas todo. Si no es null, no haces nada.

Código:

if (ventana == null)
{
  ventana = new JFrame("Demostracion ....");
  ....
}

De todas formas, echa un ojo a la clase Toolkit. Con algo como

Código:

Toolkit.getDefaultToolkit().addAWTEventListener(...., AWTEvent.MOUSE_MOTION_EVENT_MASK)
podrías suscribirte a movimientos de ratón sin necesidad de crear ninguna ventana.

Se bueno.


La zona horaria es GMT -6. Ahora son las 04:45.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.