Cómo usar Timers en Java

Поділитися
Вставка
  • Опубліковано 21 січ 2025

КОМЕНТАРІ • 93

  • @josue_ayala27
    @josue_ayala27 5 років тому +9

    Me salvaste el proyecto

  • @VoidPaul97
    @VoidPaul97 Рік тому +1

    Lo usé para un Tamagotchi, me ayudó mucho.

  • @blancapons3473
    @blancapons3473 3 роки тому +1

    ¡Muchas gracias Profe Javier! Pasan los años pero no la calidad de tus vídeos. Saludos desde España

  • @devnorth
    @devnorth 2 роки тому +1

    Gracias Crack Hoy en 2022 Tu contenido sigue siendo muuuyy Valioso !!! saludos desde bsas Argentina

  • @lailangamer
    @lailangamer 6 років тому +4

    Amigo, aunque ha pasado casi un año de este vídeo, me sirvió muchísimo, es un gran aporte y muy bien explicado.

    • @ProfeJavier
      @ProfeJavier  6 років тому

      Tiene un rato que no tocaba mi canal. Gracias por tu comentario.

  • @joselito120
    @joselito120 2 роки тому +1

    Muchas gracias, me fué de mucha utilidad. Felicitaciones, muy bien explicado.

  • @JV-ds6tk
    @JV-ds6tk 2 роки тому +3

    Gran vídeo, me ayudó a entender el timer! Gracias!

  • @ParxitaD
    @ParxitaD Рік тому +1

    Muy buena explicación =), me sirve mucho para animaciones pequeñas en mi interfaz gráfica

  • @brandonalexis8263
    @brandonalexis8263 5 років тому +2

    muy buena explicacion de como usar un Timer, ya lo probe de diferentes formas como mostrar consecutivamente 4 imagenes en un *JLabel* y asi se vallan cambiando en un interbalo de tiempo de 2 segundos...me parece muy util para darle un toque unico al condigo...me sirvio demasiado

    • @pabelorlandochaparromanriq8077
      @pabelorlandochaparromanriq8077 4 роки тому

      ¿Como lo hiciste?
      Necesito exactamente lo mismo y nose como hacerlo

    • @brandonalexis8263
      @brandonalexis8263 4 роки тому +2

      @@pabelorlandochaparromanriq8077 tienes que usar el timer junto con un contador que valla pasando consecutivamente
      por ej: 1-2-3-4 y que tus imagenes tengan ese numero dentro del nombre y al terminar la secuencia del 1 al 4 vuelva al 1 y asi sucesivamente con el intervalo de tiempo que le coloques :D.espero te sirva

    • @pabelorlandochaparromanriq8077
      @pabelorlandochaparromanriq8077 4 роки тому

      @@brandonalexis8263 Umm no tendrás tu código por hay? es que enserio lo necesito para un proyecto.
      mi correo es: pabelorlandoch@gmail.com

  • @bolokast
    @bolokast 6 років тому +2

    En pocas palabras, muchas gracias colega.

  • @lxJe4NP4uLxl
    @lxJe4NP4uLxl 6 років тому +1

    Excelente video me ha ayudado mucho. Gracias y sigue ayudando a todos

    • @ProfeJavier
      @ProfeJavier  6 років тому

      Gracias amigo, ultimamente no he subido videos pero quiero darme la oportunidad de hacerlo de nuevo. Por lo pronto, te invito a mis cursos de Java en udemy.com Si quieres más información, responde a este mensaje. Saludos.

  • @ProfeJavier
    @ProfeJavier  5 років тому +17

    Puuufff... tiene no sé cuánto que no subo nada a mi canal. Ojalá pueda retomarlo pronto.

  • @AbielFallas
    @AbielFallas 6 років тому +3

    Me sirvió un montón el video, gracias!!

  • @m_i_g_u_e_l_
    @m_i_g_u_e_l_ 5 років тому +1

    Mis respetos loco, enseñas muy bien

  • @Kervinm755
    @Kervinm755 5 років тому +20

    muy buen vídeo, me sirvió de mucho, pero la duda que tengo es que como puedo detener la ejecución del timer despúes de inicialisarlo

    • @alejandroandradegarcia9189
      @alejandroandradegarcia9189 Рік тому

      De muchas formas, ya sea usando condicionales o tambien el metodo timer. Cancel que es sirve para cancelar la ejecución de la tarea

  • @leviakerman2362
    @leviakerman2362 2 місяці тому

    Excelente explicación

  • @lezminolvera423
    @lezminolvera423 7 років тому +1

    Muy bien explicado,gracias me ayudo bastante .

  • @Mindy2812
    @Mindy2812 3 роки тому +3

    Que tal Profe Javier, muchas gracias por compartir sus conocimientos, me encuentro haciendo un ejercicio de prueba para poner varios contadores de tiempo en un formulario, algo parecido a los contadores de ciber control, pero no consigo que cada contador muestre una hora diferente y tampoco puedo parar el proceso del conteo y luego volver a ponerlo en acción, cree posible brindar un video de ayuda que muestre una forma posible de realizar esto?, de antemano muchas gracias por la ayuda que me pueda brindar y el tiempo de leer este comentario.

  • @eduardoserrano5476
    @eduardoserrano5476 6 років тому +2

    crack, fiera. nuevo sub papu

  • @MxQmarMx
    @MxQmarMx 5 років тому

    Pregunta.
    Tengo un proyecto de hacer un loggin para ingresar datos a una base de datos. Pero quiero hacerlo diferente, y al jFrame del loggin despues de ingresar usuario quiero que antes de que salga la ventana para ingresar datos a la base de datos, salga una ventana donde pondré un gif, y con el timer quiero que esa ventana del gif se cierre cuando acabe y ya abrir el jFrame del formulario.
    ¿el método Timer lo pongo en el boton del loggin o en el jFrame del gif?

  • @solracnauj19
    @solracnauj19 3 роки тому

    muchas gracias primero habia visto el Thread y ahora el Timer, si me gustaria saber la diferencia.

  • @guasonreyessanchez8559
    @guasonreyessanchez8559 3 роки тому

    Gracias.

  • @anuar.rodriguez
    @anuar.rodriguez 4 роки тому

    como consultar en mysql con timers? cuando un valor sea igual a 0 no mostrar ventana y si tiene 1 mostrar ventana

    • @ProfeJavier
      @ProfeJavier  4 роки тому +1

      Pues básicamente tendrías que hacer un método que esté realizando esa consulta dentro de la tarea de timer. Es decir, lo invocas ahí dentro para que esa consulta se realicr cada cierto tiempo

    • @anuar.rodriguez
      @anuar.rodriguez 4 роки тому +2

      @@ProfeJavier si, de hecho eso ando investigando... es que la idea era hacer una notificación de php a una ventana de java en una ip fija (redlocal)... pero con la idea del timer se me ocurre generar un programa java que se ejecute en el equipo y este realizando la consulta a la base de datos cada 30 minutos (aprox) y ver si tiene algún cambio (poner alguna bandera de alguna actividad que le haga falta por realizar en la pagina web)

  • @enlaPiedra
    @enlaPiedra 2 роки тому

    Timer es un hilo o forma parte de ellos???

  • @TheBeffo
    @TheBeffo 5 років тому

    Un gran like ! Me sirvió mucho para verificar notificaciones :v

  • @sapport4102
    @sapport4102 6 років тому +1

    muy buen video una consulta ¿se puede agregar un tiempo de termino también?

    • @ProfeJavier
      @ProfeJavier  6 років тому +2

      no exactamente, pero puedes interrumpir o detener el Timer y llevar un contador de tiempo dentro del run. Esta respuesta de stackoverflow puede ayudar stackoverflow.com/questions/1409116/how-to-stop-the-task-scheduled-in-java-util-timer-class

  • @luiguidark07
    @luiguidark07 7 років тому +2

    Buen video

  • @EnemesisDMN
    @EnemesisDMN 6 років тому

    Gracias bro

  • @GustavoGarcia-sd8gj
    @GustavoGarcia-sd8gj 3 роки тому

    Buenas noches espero pueda ayudarme, no me deja usar "TIMER"

  • @susiososiosos
    @susiososiosos 6 років тому

    si no tengo esa opción de Timer schedule(la de la variable long delay) necesito bajar una libreria?

    • @ProfeJavier
      @ProfeJavier  6 років тому

      Para nada amigo, algo te está fallando ñor ahí en tu código

    • @MyRicardo32
      @MyRicardo32 6 років тому

      import java.util.Timer;

  • @MR-nm3vq
    @MR-nm3vq 3 роки тому

    Se que es tonta mi pregunta, pero como llamo a esta clase timer en otro jframe previamente hecho y que muestre la fecha en un jlabel.....??....

    • @ProfeJavier
      @ProfeJavier  3 роки тому

      Importas la clase en el otro JFrame y creas una instancia de esta clase.
      También te recomiendo explorar la clase Timer pero del paquete swing

    • @MR-nm3vq
      @MR-nm3vq 3 роки тому

      @@ProfeJavier Muchas gracias por contestar!
      Eso es lo que hice pero no logro hacer que funcione, no se si lo estoy haciendo bien. Tengo un JFrame con algunos componentes, pero luego cree otra clase en donde queria probar el Timer para ver un Jlabel de mi JFrame cambiando de imagen cada segundo, el timer funciona bien porque estoy importando mi JFrame a la clase timer, pero quiero hacer lo contrario; es decir, que desde el JFrame (que se habre desde un jmenuItem) automaticamente comience a hacer lo de mi clase Timer.
      En que de mi JFrame debo implementar a esa clase Timer, o como es la manera correcta?

    • @ProfeJavier
      @ProfeJavier  3 роки тому

      @@MR-nm3vq muestrame el Código de tus clases

    • @MR-nm3vq
      @MR-nm3vq 3 роки тому

      @@ProfeJavier OK,de la clase que hace de Timer tengo lo siguiente:
      package modelo;
      import javax.swing.Icon;
      import javax.swing.ImageIcon;
      import java.util.Timer;
      import java.util.TimerTask;
      import vista.PedidosAutorizados; // Este es mi formulario en donde quiero que esta clase se inicie.
      public class ActualizaPantalla {
      static int contador = 0;
      public static void main(String[] args) {
      int velocidad = 2;
      Timer timer;
      TimerTask tarea;
      int velmil = velocidad * 1000;
      PedidosAutorizados actualiza = new PedidosAutorizados();
      actualiza.setVisible(true);
      tarea = new TimerTask() {
      @Override
      public void run() {
      Icon icono;
      switch (contador) {
      case 0:
      contador = 1;
      icono = new ImageIcon(getClass().getResource("/imagenes/cero.png"));
      actualiza.jLabel3.setIcon(icono);
      break;
      case 1:
      contador = 2;
      icono = new ImageIcon(getClass().getResource("/imagenes/veinte.png"));
      actualiza.jLabel3.setIcon(icono);
      break;
      case 3:
      contador = 0;
      icono = new ImageIcon(getClass().getResource("/imagenes/cien.png"));
      actualiza.jLabel3.setIcon(icono);
      break;
      }
      }
      };
      timer = new Timer();
      timer.scheduleAtFixedRate(tarea, velmil, velmil);
      }
      }
      Nota: Si yo corro esta clase, funciona bien porque estoy llamando al JFrame, pero esto no e sirve porque cuando ya yo corro mi programita desde el inicio (el cual es otro formulario) el "Timer" no funciona.
      AHORA ESTE ES EL FORMULARIO EN DONDE TENGO UN JLabel al cual le puse una imagen y esa imagen va a cambiar cada segundo por otra imegen (eso de acuerdo a la clase que hace de timer ).
      package vista;
      import java.awt.event.KeyEvent;
      import modelo.ActualizaPantalla;// Esta es la clase que tiene el timer
      import modelo.Cls_AsignarPedidos;
      public class PedidosAutorizados extends javax.swing.JFrame{
      private final Cls_AsignarPedidos CP;
      //private final ActualizaPantalla AC;
      ActualizaPantalla timer = new ActualizaPantalla();
      /**
      * Creates new form PedidosAutorizados
      */
      public PedidosAutorizados() {
      initComponents();
      CP = new Cls_AsignarPedidos();
      //AC = new ActualizaPantalla();
      listar();

      }

      private void listar(){
      jTable_PedAutorizados.setModel(CP.getDatos());

      }
      Este JFrame tiene mas componentes, tales como una tabla, botones, etc, y lo que yo le quiero agregar a este JFrame es la funcionalidad esa que hace la Clase "ActualizarPantalla" (Timer), pero básicamente creo que con esto es suficiente para que me entiendas verdad?
      Y pues viendo tu video, me gustó la idea de poder agregar la fecha y hora actual en ese JFrame. Solo que no se como llamar a la clase..jeje disculpa mi ignorancia, soy novata.

    • @ProfeJavier
      @ProfeJavier  3 роки тому

      no te preocupes.... mira, va a estar difícil ayudarte por este medio. Búscame en skype como biochemistry43@hotmail.com, programamos una llamada, me compartes pantalla y ahí te ayudo.

  • @Cookieguy1206
    @Cookieguy1206 4 роки тому +1

    Alguien sabe como podria utilizar esto para actualizar un JTable en tiempo real?

    • @ProfeJavier
      @ProfeJavier  4 роки тому

      Si se puede pero funciona mejor el timer de swing para eso. Funciona de manera similar.
      docs.oracle.com/javase/tutorial/uiswing/misc/timer.html

    • @Cookieguy1206
      @Cookieguy1206 4 роки тому

      @@ProfeJavier Gracias profe

  • @mattnavarro3675
    @mattnavarro3675 5 років тому

    ayuda regalame por fa una idea sobre como hacer timer pero con salida en pantalla de imagenes para medir la reaccion del usuario todo por un limite de segundos te los agradeceria como debo hacerlo

    • @ProfeJavier
      @ProfeJavier  5 років тому

      Hola Matt. Casi estoy seguro que necesitarás el Timer que pertenece a swing pero... dame un poco más de detalle sobre lo que quieres hacer :)

    • @mattnavarro3675
      @mattnavarro3675 5 років тому

      @@ProfeJavier gracias por responder .
      pues en realidad se trata sobre hacer un programa psicosensometrico.
      ya se que evalúa cada prueba, consiste en una imagen que saldrá en pantalla el usuario deberá reaccionar esta imagen saldrá por un limite de tiempo y se evaluara cuanto tiempo demoro el usuario en reaccionar a partir de la salida en pantalla
      por favor regale me una orientación una idea que debo hacer que métodos implementar se lo agradeceri

    • @ProfeJavier
      @ProfeJavier  5 років тому +1

      ok ya ya. Mira, honestamente no hay una "respuesta rápida" a lo que comentas pero puedo darte alguna guía.
      Sin embargo, no puedo darte ninguna guía pienso yo si no me dices qué tienes hecho... no sé... se me dificulta responder esto así nada más jaja

    • @mattnavarro3675
      @mattnavarro3675 5 років тому

      @@ProfeJavier no tengo hecho nada solo e estado investigando con que metodos se debe realizar lo que unico que hice fue hacer mostrar en pantalla una horario atada a un dia y una hora con timers si me pudieras dar una pequeña guia o como deberia empezar que metodos aplicar se que es mucho joder de mi parte pero por fa si son mis pasantias ayudame si
      claro no quiero que me des el codigo o algo asi solo quiero una guia un asesoramiento

    • @ProfeJavier
      @ProfeJavier  5 років тому

      ok bueno... a primera instancia se me ocurre sea una aplicación con swing porque web tendría que ser con Javascript.
      Bueno... para las imágenes puedes utilizar el método setIcon de los JLabel. Hay como 100 mil sitios que hablan de eso XD pero acá te dejo uno.
      www.discoduroderoer.es/poner-imagen-en-un-jlabel-en-java/
      Básicamente tendrías que usar el método setIcon de JLabel. El timer se presta bien para este propósito puede dentro del método run del timer (como lo muestro en este video precisamente), puedes ir cambiando la imagen del JLabel en cada iteración del timer. También puedes utilizar el timer de swing y de hecho puede que se adapte mejor a lo que necesitas.
      docs.oracle.com/javase/7/docs/api/javax/swing/Timer.html
      docs.oracle.com/javase/tutorial/uiswing/misc/timer.html
      Se me ocurre que tengas una variable global que se actualice dependiendo de qué imagen se esté mostrando, así sabrás cuál es la imagen a la que se está reaccionando.
      Aparte de esto, no sabría por ahora qué mas decirte :(

  • @juya06
    @juya06 3 роки тому

    Hola que tal maestro, muchas gracias por sus videos, me han servido mucho, que me sugiere hacer, estoy trabajando con sesiones y necesito saber cuánto tiempo se tiene trabajando la sesión con java, eso puede ser posible? Espero me pueda ayudar u orientar maestro, de antemano muchas gracias, saludos

    • @ProfeJavier
      @ProfeJavier  3 роки тому +1

      Hola, te refieres a sesiones web?

    • @juya06
      @juya06 3 роки тому

      @@ProfeJavier si maestro, estoy trabajando con java web, primefaces y jsf

    • @ProfeJavier
      @ProfeJavier  3 роки тому +1

      @@juya06 chécate este link www.arquitecturajava.com/java-httpsession-timeout/

    • @ProfeJavier
      @ProfeJavier  3 роки тому +1

      También chécate el método getCreationTime() docs.oracle.com/javaee/7/api/javax/servlet/http/HttpSession.html#getCreationTime--
      Si necesitas calcular exáctamente el tiempo que llevas en la sesión, utiliza el valor de getCreationTime() para calcularlo.

    • @juya06
      @juya06 3 роки тому

      @@ProfeJavier muchas gracias maestro, voy a checar esa información y le cuento que tal, le agradezco mucho el que me haya orientado, saludos y bendiciones

  • @agustintambo6701
    @agustintambo6701 6 років тому

    una consulta he realizado un .jar luego lo convierto con ikvm para que sea compatible con microsoft. el .jar lo que hace es abrir el almacen de firmas keyStore.getinstance("Windows-MY") . esto si lo corro desde java funciona, pero al ejecutarlo con microsoft no devuelve nada. Revisando la web veo que es un tema de seguridad pero no se is al .jar debo declararle algunas directivas asi como se hace en la programacion movil dond uno define la direcitva de acceso a camaras,, gps etc. Sabes algo al respecto

    • @ProfeJavier
      @ProfeJavier  6 років тому

      Hola Agustín, lamentablemente no tengo experiencia en lo que mencionas. Lo que no comprendo es porqué utilizas ikvm sin Java es multiplataforma ¿De qué me estoy perdiendo?

    • @agustintambo6701
      @agustintambo6701 6 років тому

      @@ProfeJavier hola gracias por tu respuesta uso ikvm para convertir un .jar en un .dll para consumirla en un proyecto microsoft

    • @ProfeJavier
      @ProfeJavier  6 років тому

      Ya veo, la verdad si te fallo amigo pues yo con Microsoft estoy peleado.

    • @ProfeJavier
      @ProfeJavier  6 років тому

      @@agustintambo6701 Ahora bien, yo lo que haría es mandar mensajes como objetos serializados a mi aplicación en C# y me olvido de convertir un .jar en un dll

    • @agustintambo6701
      @agustintambo6701 6 років тому

      @@ProfeJavier Lo que necesito es usar la funcionalidad del .jar es por eso que lo referencio en mi proyecto de c# para luego consumirlo. Tienes algun ejemplo de lo que tu me indicas de pasarle mensajes serializados. Te agradezco por tu respuesta. si la verdad mi fuerte no es java.

  • @alejandroalaniz7267
    @alejandroalaniz7267 6 років тому

    podría hacer un programa donde se sincronice reloj

  • @caposar1
    @caposar1 5 років тому

    Hola, muy bueno, pulgar arriba y ya me suscribí. Una consulta: Estoy haciendo un juego de puzle y necesito desplazar botones, podría lograr este efecto con timer o me recomendas otra forma? en caso afirmativo como detendría el timer?

  • @irrefl1672
    @irrefl1672 6 років тому

    Amigo tienes idea de si podemos cambiar de alguna manera la imagen del fondo de los botones de un JOptionPane.showOptionDialog: es decir que ahora que tenemos botones personalizados podamos poner una imagen en ese nuevo boton creado.

  • @leolucasledesma
    @leolucasledesma 6 років тому

    Supongamos que en vez de usar la clase Timer se usa la clase Thread con Thread.sleep(1000), ¿esto puede producir un retraso? Es decir, la cuenta puede adelantarse o atrasarse (no estoy muy seguro de esto). ¿Timer es más eficiente para crear un cronómetro que Thread?

    • @ProfeJavier
      @ProfeJavier  6 років тому

      Disculpa, tengo un rato sin tocar mi canal. Supongo que ya resolviste eso haha

  • @hello-hb5ub
    @hello-hb5ub 4 роки тому +1

    creo que ya no existe constructor vacio en la clase Timer

  • @hello-hb5ub
    @hello-hb5ub 4 роки тому +1

    require int,actionListener

  • @leoniv1993
    @leoniv1993 Рік тому +1

    Sabemos que las clases abstractas no pueden ser instanciadas. Si TimerTask es una clase abstracta ¿Porque TimerTask logra ser instanciada?

    • @ProfeJavier
      @ProfeJavier  Рік тому +1

      Excelente pregunta.
      En realidad, no es que la clase abstracta sea instanciada sino que estamos creando algo que se llama "clase anónima". Esta técnica aplica para cualquier clase abstracta o interfaz en realidad.
      Una opción que tendríamos es hacer esto:
      class MiTimerTask extends TimerTask {
      //Ahora estoy obligado a implementar los métodos abstractos
      @override
      public void run() {
      //alguna implementación...
      }
      }
      Lo que estamos haciendo en el video, se podría decir que es lo mismo pero sin crear una clase en particular, por eso se le llama "clase anónima".
      No es que estemos instanciando la clase abstracta, si ese fuese el caso, la sintaxis sería
      TimerTask task = new TimerTask(); // hasta ahí.
      En cambio, lo que estamos haciendo es creando un objeto de una implementación de TimerTask ¿Cuál implementación? La que se sigue inmediatamente después de la creación de la instancia.
      Esta...
      {
      @override
      public void run() {
      //alguna implementación...
      }
      }
      Por eso, finalmente
      TimerTask task = new TimerTask() // ---a partir de aquí, la implementación de la clase anónima
      {
      @override
      public void run() {
      //alguna implementación...
      }
      }
      Esta técnica igual aplica para interfaces y clases abstractas. El requisito es que la clase anónima debe implementar todos los métodos abstractos como se haría normalmente en cualquier otra clase.

    • @leoniv1993
      @leoniv1993 Рік тому

      @@ProfeJavier Muchas gracias profesor invaluable el conocimiento que nos proporciona.

  • @joseluisvillota8263
    @joseluisvillota8263 4 роки тому

    no me aparece schedule

    • @ProfeJavier
      @ProfeJavier  4 роки тому

      Hola José Luis, revisa tu import. Es probable que hayas importado de un paquete diferente

  • @jordi4928
    @jordi4928 2 роки тому

    y como paro pues chch

  • @cristhianelvisvelasquezven3726
    @cristhianelvisvelasquezven3726 5 років тому

    El Timer me sale con método abstracto para implementar , usted no le sale.

  • @danieleduardomendozalorenzo24
    @danieleduardomendozalorenzo24 5 років тому

    Solo consola

  • @mysterxfreefire6913
    @mysterxfreefire6913 3 роки тому

    Gracias bro