Introducción
JavaFX es una herramienta potente para el desarrollo de aplicaciones de escritorio con interfaces gráficas ricas en Java. En este tutorial, aprenderemos a crear una aplicación con dos ventanas separadas en JavaFX. Este tipo de diseño es útil para aplicaciones que necesitan más de una vista o ventana para interactuar con el usuario, como aplicaciones de gestión o herramientas administrativas.
Preparativos en Eclipse
Antes de comenzar a codificar, debes asegurarte de que tu entorno esté listo para el desarrollo de JavaFX:
- Instalar JDK 11 o superior: JavaFX está incluido en JDK desde la versión 11.
- Configurar Eclipse: Instala Eclipse y asegúrate de que el plugin e(fx)clipse esté instalado para facilitar el desarrollo de JavaFX.
Crear un Proyecto JavaFX
- Nuevo Proyecto JavaFX: Abre Eclipse y crea un nuevo proyecto JavaFX seleccionando
File > New > Project...
. SeleccionaJavaFX Project
de las opciones disponibles y sigue el asistente para completar la configuración.
Implementación del Código
Vamos a crear dos clases en este proyecto, una para cada ventana de la aplicación.
Clase de la Ventana Principal
package application;
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
public class MainApp extends Application {
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Ventana Principal");
Button openButton = new Button("Abrir Ventana Detallada");
openButton.setOnAction(e -> DetailWindow.open());
VBox layout = new VBox(20);
layout.getChildren().add(openButton);
Scene scene = new Scene(layout, 300, 250);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Clase de la Ventana Secundaria
package application;
import javafx.stage.Stage;
import javafx.stage.Modality;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.geometry.Pos;
public class DetailWindow {
public static void open() {
Stage secondaryStage = new Stage();
secondaryStage.initModality(Modality.APPLICATION_MODAL);
secondaryStage.setTitle("Ventana Detallada");
secondaryStage.setMinWidth(300);
Label infoLabel = new Label("Esta es una ventana secundaria.");
Button closeButton = new Button("Cerrar");
closeButton.setOnAction(e -> secondaryStage.close());
VBox layout = new VBox(15);
layout.getChildren().addAll(infoLabel, closeButton);
layout.setAlignment(Pos.CENTER);
Scene scene = new Scene(layout, 300, 200);
secondaryStage.setScene(scene);
secondaryStage.showAndWait();
}
}
Explicación del Código
- Ventana Principal (
MainApp
): Esta clase configura una ventana con un botón que, al hacer clic, abre la ventana secundaria. - Ventana Secundaria (
DetailWindow
): Esta clase maneja la apertura de una ventana modal, que incluye un mensaje y un botón para cerrar la ventana. La modalidad de la ventana asegura que el usuario debe interactuar con la ventana secundaria antes de volver a la principal.
Ejecución y Pruebas
Para probar la aplicación, ejecuta la clase MainApp
como una aplicación Java en Eclipse. Observarás la ventana principal y podrás abrir la ventana secundaria haciendo clic en
el botón «Abrir Ventana Detallada».
Conclusión
Este tutorial demostró cómo manejar aplicaciones de múltiples ventanas en JavaFX, proporcionando un marco para desarrollar aplicaciones que requieren interfaces más complejas y distribuidas. El manejo efectivo de varias ventanas es fundamental en muchos tipos de aplicaciones de escritorio, especialmente aquellas que manejan tareas múltiples o flujos de trabajo avanzados.
Las ventanas modales, como la que hemos implementado, son especialmente útiles en situaciones donde necesitas que el usuario se concentre en la tarea presentada en la ventana secundaria sin distracciones de la interfaz principal. Este enfoque garantiza una interacción ordenada y puede mejorar significativamente la experiencia del usuario.
Expandiendo la Aplicación
A partir de aquí, puedes expandir la funcionalidad de las ventanas:
- Comunicación entre Ventanas: Podrías implementar mecanismos para que las ventanas comuniquen información, como pasar datos de la ventana principal a la secundaria y viceversa.
- Estilos y Diseño: Aplica estilos CSS para mejorar la interfaz de usuario de tus ventanas y alinearla con la identidad visual de tu aplicación.
- Funcionalidades Avanzadas: Incorpora características más complejas como formularios detallados, tablas o incluso gráficos en la ventana secundaria.
Próximos Pasos
Explora más sobre JavaFX y su potente API para seguir mejorando tus habilidades en el desarrollo de aplicaciones de escritorio. Experimenta con diferentes tipos de controles y layouts para ver cómo puedes mejorar y expandir aún más tus aplicaciones.
![gray and black laptop computer](https://infogonzalez.com/wp-content/uploads/2024/02/pexels-photo-265087-1024x682.jpeg)
Gracias por visitar mi blog de informática, mi nombre es Tomás y soy formador y desarrollador web. Si quiere usted dejarme alguna sugerencia, ayuda o quiere un servicio de formación estoy escuchando ofertas en tomas.gonzalez@infogonzalez.com, en Facebook a https://www.facebook.com/Infogonzalez estoy deseando escucharle. Su duda o sugerencia NO molesta.