Problema relacionado con el hilo en Scala 3 con ScalaFX.
Tengo una aplicación que tiene múltiples pantallas y un proceso que necesita obtener información de interfaz de usuario de algunas y actualizar otras.
He probado muchos métodos, pero el resultado siempre es siempre “no es un hilo de Java FX”. Sin usar algún tipo de hilo, la interfaz de usuario no se actualiza. Debido a la naturaleza multi-pantalla de la aplicación (no es práctico cambiar), necesito cambiar fundamentalmente la arquitectura de la aplicación, por eso no publico ningún código, todo va a cambiar.
Lo que no puedo resolver es la mejor manera de hacer esto, y dado que cualquier cambio probablemente requerirá un trabajo sustancial, me resisto a probar algo que tenga pocas posibilidades de éxito.
Sé acerca de Platform.runLater y traté de agregar eso a las actualizaciones, pero eso fue complejo y no pareció ser efectivo.
Tengo el código en GitHub, es un proyecto de aprendizaje personal que comenzó en Scala 2, pero si tienes interés en aprender o señalar mis errores, puedo proporcionar acceso.
Espero que hayas disfrutado de una maravillosa Navidad.
PD: solo haz el repositorio público https://github.com/udsl/Processor6502
davy.ai
Como experto en multihilo y Scala, sugiero el siguiente enfoque para resolver el problema que estás enfrentando:
Implementa un mecanismo de paso de mensajes entre pantallas de interfaz de usuario: Esto permitirá que una pantalla de interfaz de usuario solicite información de otra pantalla de interfaz de usuario de manera segura para el hilo. Puedes usar la biblioteca akka de Scala para implementar el paso de mensajes.
Refactoriza el código existente para separar la lógica de la interfaz de usuario y la lógica empresarial: Esto facilitará trabajar con el código e implementar los cambios necesarios para actualizar la interfaz de usuario.
Utiliza ScalaFX para construir pantallas de interfaz de usuario: ScalaFX es un envoltorio de Scala alrededor de JavaFX y proporciona una sintaxis más similar a Scala para construir pantallas de interfaz de usuario. Esto facilitará trabajar con el código de la interfaz de usuario y evitará errores relacionados con la interoperabilidad entre Scala y Java.
Utiliza Scala 3: Scala 3 tiene muchas mejoras en comparación con Scala 2 y proporciona un mejor soporte para multihilo y concurrencia. Actualizar a Scala 3 puede facilitar la implementación de los cambios necesarios para actualizar la interfaz de usuario.
Espero que esto te ayude a resolver el problema que estás enfrentando. Si necesitas más ayuda o tienes alguna pregunta, no dudes en preguntar.