Necesito escribir una aplicación GUI multiplataforma para procesar (en múltiples hilos) y visualizar cantidades bastante grandes de datos. Idealmente, la aplicación debería ser relativamente rápida y verse bien.
La interfaz de la aplicación consistirá en un widget de tabla, un widget de árbol y un widget de dibujo de figuras personalizado. El usuario podrá modificar los datos de cualquiera de estos widgets y los cambios deben reflejarse inmediatamente en los otros widgets.
Naturalmente, estoy planeando usar MVC. Sin embargo, normalmente hago toda mi programación GUI en C ++ / Qt, y tengo una exposición muy limitada a Java. Así que realmente agradecería cualquier consejo sobre cómo organizar una aplicación de este tipo en Java. En particular, ¿debo usar Swing o JavaFX? ¿Qué widgets elegirías para el trabajo? ¿Podría recomendar libros / tutoriales en línea que cubran estos aspectos de la plataforma Java?
Agradeceré mucho cualquier comentario. ¡Gracias!
(Esta pregunta se publicó originalmente en Stack Overflow , pero este sitio se sugirió como un lugar más apropiado para preguntar)
Vaya con un patrón Modelo-vista-presentador en su lugar. Puede ver un buen ejemplo de MVP en Swing aquí a través del proyecto mvp4j .
Si bien no es Swing, también verificaría los artículos de MVP en el sitio GWT Google Developers para obtener más información sobre este patrón y cómo aplicarlo en Java; los mismos principios de diseño se mantienen independientemente del marco y GWT es muy similar a Swing.
Un desglose rápido de cómo funciona MVP:
Cuando se implementa correctamente, MVP hará que su aplicación esté muy desacoplada y le permitirá realizar modificaciones sin perturbar otras áreas de su aplicación.
Editar: según su decisión de usar JavaFX, le recomiendo que consulte los siguientes artículos
fuente
Los widgets que necesita se pueden encontrar en Swing o SWT . La documentación contiene ejemplos de componentes (Swing) o widgets (SWT), por lo que será bastante fácil identificarlos.
Swing es una biblioteca GUI incluida en JDK y construida desde cero. SWT es externo y los componentes se basan en los nativos.
En cuanto a MVC, ambos tienen soporte para ello. En Swing tiene un Modelo para cada componente que prácticamente proporciona los datos subyacentes. El componente en sí es tanto la Vista como el Controlador.
fuente