tutorial ejemplos descargar javafx

ejemplos - Fuerza la pintura inmediata en JavaFX



javafx scene builder (3)

¿Hay alguna manera de obligar a una aplicación JavaFX a volver a pintar antes de continuar? Similar a un método de pintura (Graphic Graphic) de Swing Panel (podría estar equivocando las palabras clave allí).

Considere el siguiente ejemplo: usted escribe una aplicación TicTacToe junto con la AI requerida para un reproductor de computadora. Desea la capacidad de mostrar dos jugadores de computadora. Tal vez pones una pausa de dos segundos entre las vueltas de la computadora para darle un efecto de vida. Cuando presiona el botón "Ir", hay una gran pausa de falta de respuesta (el tiempo que tardan los 9 turnos con pausas falsas para que la computadora "decida") y de repente la imagen visual de la aplicación se actualiza con el estado del juego.

Parece que JavaFX vuelve a pintar una vez que finaliza el procesamiento en el hilo de la aplicación. No estoy completamente seguro aquí.

¡Gracias!


Esta no será la respuesta más útil ya que he jugado todo el tiempo con JavaFX durante medio día, pero ¿no usaría líneas de tiempo, fotogramas clave y enlaces para realizar sus repintados en lugar de llamarlos explícitamente como los describió?

Vea este tutorial para un ejemplo .


Tienes razón. JavaFX es impulsado por eventos y de un solo subproceso. Esto significa que la repintado y la respuesta al evento no se pueden hacer simultáneamente. Las tareas prolongadas deben ejecutarse en un hilo separado para que no bloqueen la renderización de la interfaz de usuario. Cuando la tarea finaliza, puede volver a sincronizarse con el hilo FX llamando a FX.deferAction (), que simplemente ejecutará el código en el principal. hilo.


El modelo de JavaFX es separarte de la pintura de "cosas" en la pantalla. Esto es muy poderoso pero es un cambio con respecto a la forma en que podrías estar familiarizado.

Whaely tiene razón en que la forma adecuada de hacer esto en JavaFX es hacer una línea de tiempo donde el movimiento se realiza cada X segundos y se dibujará en ese fotograma clave.

Si tiene alguna pregunta sobre cómo hacer esto, pruébelo y formule una nueva pregunta con algún código.