Tutorial: Implementando Múltiples Ventanas en JavaFX con Eclipse

Introducción

Crear una aplicación que maneje múltiples ventanas es una habilidad esencial para desarrolladores de aplicaciones de escritorio. En este tutorial, aprenderás a implementar una aplicación JavaFX que abre una segunda ventana desde la principal, utilizando Eclipse como IDE. Esta funcionalidad es útil para aplicaciones que requieren interacciones adicionales o separadas, como herramientas administrativas, software de edición, o aplicaciones de gestión de datos.

Configuración del Entorno de Desarrollo

Antes de comenzar a programar, asegúrate de que tienes lo siguiente configurado:

  1. Java Development Kit (JDK): Instala JDK 11 o superior, que ya incluye JavaFX.
  2. Eclipse IDE: Asegúrate de tener Eclipse instalado, idealmente con el plugin e(fx)clipse para facilitar el desarrollo de JavaFX.

Creación del Proyecto JavaFX

  1. Inicio del Proyecto: En Eclipse, crea un nuevo proyecto JavaFX yendo a File > New > JavaFX Project. Sigue los pasos en el asistente para configurar tu proyecto.

Estructura del Código

El proyecto consistirá en dos clases: una para la ventana principal y otra para la ventana secundaria.

Clase Principal
package application;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class MainApplication extends Application {

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Ventana Principal");

        Button openButton = new Button("Abrir Ventana Secundaria");
        openButton.setOnAction(event -> SecondaryWindow.display());

        StackPane root = new StackPane();
        root.getChildren().add(openButton);
        Scene scene = new Scene(root, 350, 200);

        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
Clase 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 SecondaryWindow {

    public static void display() {
        Stage secondaryStage = new Stage();
        secondaryStage.initModality(Modality.APPLICATION_MODAL);
        secondaryStage.setTitle("Ventana Secundaria");
        secondaryStage.setMinWidth(250);

        Label message = new Label("Esta es la Ventana Secundaria.");
        Button closeButton = new Button("Cerrar");
        closeButton.setOnAction(e -> secondaryStage.close());

        VBox layout = new VBox(10);
        layout.getChildren().addAll(message, closeButton);
        layout.setAlignment(Pos.CENTER);

        Scene scene = new Scene(layout, 200, 100);
        secondaryStage.setScene(scene);
        secondaryStage.showAndWait();
    }
}

Descripción del Código

  • Clase Principal (MainApplication): Configura una ventana con un botón que, al ser presionado, invoca la ventana secundaria.
  • Clase Secundaria (SecondaryWindow): Define una ventana modal que muestra un mensaje y contiene un botón para cerrar la ventana. Esto asegura que el usuario debe cerrar la ventana secundaria antes de regresar a la ventana principal.

Ejecución y Pruebas

Ejecuta la aplicación desde Eclipse utilizando Run As > Java Application. Verás la ventana principal con un botón. Al hacer clic en este botón, se abrirá la ventana secundaria.

Conclusión

Este tutorial te ha guiado a través del proceso de desarrollo de una aplicación JavaFX que maneja múltiples ventanas, una habilidad crucial para la creación de aplicaciones de escritorio modernas y funcionales. La capacidad de interactuar con múltiples ventanas es fundamental en muchos contextos de software, proporcionando una interacción del usuario más rica y dividida.

gray and black laptop computer
Photo by Pixabay on Pexels.com

Deja un comentario

Información básica sobre protección de datos Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

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.