Creación de Aplicaciones con Múltiples Ventanas en JavaFX

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:

  1. Java Development Kit (JDK): Debes tener instalado JDK 11 o superior, ya que incluye JavaFX.
  2. 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

  1. Crear un Proyecto Nuevo: Inicia Eclipse y crea un nuevo proyecto JavaFX yendo a File > New > Project..., selecciona JavaFX 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ático display() 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.

gray and black laptop computer
Photo by Pixabay on Pexels.com
error: Content is protected !!

Descubre más desde InfoGonzalez - Blog de formador e informático

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad
Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.