Introducción
En este tutorial, te mostraremos cómo desarrollar una aplicación JavaFX que consta de dos ventanas, donde la acción en una ventana desencadena la apertura de la segunda. Este tipo de funcionalidad es esencial en muchas aplicaciones modernas que requieren múltiples interfaces para realizar diversas tareas.
Configuración del Entorno en Eclipse
Antes de comenzar, asegúrate de tener todo lo necesario:
- Java Development Kit (JDK): Debes tener instalado JDK 11 o superior, ya que incluye JavaFX.
- Eclipse IDE: Asegúrate de tener Eclipse instalado. También necesitas el plugin e(fx)clipse, que facilita el desarrollo en JavaFX.
Creación de un Proyecto JavaFX
- Crear un Proyecto Nuevo: Inicia Eclipse y crea un nuevo proyecto JavaFX yendo a
File > New > Project...
, seleccionaJavaFX Project
y sigue las instrucciones del asistente para configurar tu nuevo proyecto.
Implementación del Código
El proyecto constará de dos clases, cada una representando una ventana en la aplicación.
Primera Ventana – 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.StackPane;
public class PrimaryWindow extends Application {
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Ventana Principal");
Button btnOpenSecond = new Button("Abrir Segunda Ventana");
btnOpenSecond.setOnAction(e -> {
SecondaryWindow.display();
});
StackPane root = new StackPane();
root.getChildren().add(btnOpenSecond);
Scene scene = new Scene(root, 300, 250);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Segunda Ventana – Ventana Detallada
package application;
import javafx.stage.Stage;
import javafx.stage.Modality;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.geometry.Pos;
public class SecondaryWindow {
public static void display() {
Stage window = new Stage();
window.initModality(Modality.APPLICATION_MODAL);
window.setTitle("Segunda Ventana");
window.setMinWidth(250);
Label label = new Label("Bienvenido a la Segunda Ventana");
Button closeButton = new Button("Cerrar");
closeButton.setOnAction(e -> window.close());
VBox layout = new VBox(10);
layout.getChildren().addAll(label, closeButton);
layout.setAlignment(Pos.CENTER);
Scene scene = new Scene(layout);
window.setScene(scene);
window.showAndWait();
}
}
Explicación del Código
- Primera Ventana (
PrimaryWindow
): Esta clase configura la ventana principal con un botón que, al hacer clic, abre la segunda ventana. - Segunda Ventana (
SecondaryWindow
): Define un método estáticodisplay()
que abre una ventana modal. La ventana modal bloquea las interacciones con la ventana principal hasta que se cierre.
Ejecución y Pruebas
Para probar la aplicación, ejecuta la clase PrimaryWindow
como una aplicación Java en Eclipse. Deberías ver la ventana principal y poder abrir la segunda ventana mediante el botón proporcionado.
Conclusión
Este tutorial proporciona una base sólida para desarrollar aplicaciones JavaFX con múltiples ventanas, una habilidad crucial para crear aplicaciones de escritorio modernas y funcionales. Explorar el manejo de múltiples ventanas en JavaFX es un paso importante para desarrollar interfaces de usuario complejas y reactivas.
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.