2012-09-30 28 views
5

Empecé a jugar con JavaFX 2 y realmente me gusta la facilidad con la que uno puede crear una interfaz de usuario con FXML. Sin embargo, una vez que pasa los ejemplos básicos y necesita una interfaz de usuario con muchas ventanas, parece ilógico tener la definición de la interfaz de usuario de toda la aplicación en un solo archivo FXML.¿Hay alguna forma de modularizar una aplicación JavaFX?

¿Es posible escribir componentes separados en archivos FXML separados y luego incluirlos según sea necesario? Digamos, por ejemplo, que quería que apareciera una ventana cuando el usuario hace clic en un elemento del menú principal; ¿podría escribir la definición de esa ventana en un archivo FXML separado, cargarlo en tiempo de ejecución y agregarlo al árbol de nodos?

+0

Sí, esto debería ser posible. ¿Es suficiente esta respuesta o tienes algún problema específico? – Puce

+0

Bueno, supongo que eso responde la pregunta específica que hice. Permítanme reformular: ¿podría alguien proporcionar un ejemplo de importación de un módulo FXML en una aplicación e insertar ese nodo en la aplicación principal durante el tiempo de ejecución? – corbenik

+0

No debería ser muy diferente a la importación de un solo FXML. ¿Puedes mostrar lo que has intentado y dónde luchas? – Puce

Respuesta

4

Desde la perspectiva FXML hay dos enfoques:

  1. simplemente utilizar fx:include directiva para dividir la aplicación en partes lógicas en diferentes archivos fxml.

  2. Una forma más avanzada sería implementar partes de su aplicación como "controles" por separado. Que tendrán su propia API (puede ser muy simple) para proporcionar datos y se pueden usar en FXML o FX API como controles incorporados. Vea la siguiente pregunta para más detalles sobre cómo implementar eso usando FXML: How to pass object created in FXML Controller1 to Controller2 of inner FXML control

Cuestiones relacionadas