Desarrollo de Aplicaciones Multi-Ventana en JavaFX

Introducción

JavaFX ofrece potentes herramientas para el desarrollo de interfaces gráficas de usuario (GUI), permitiendo la creación de aplicaciones multi-ventana de forma sencilla. En este tutorial, exploraremos cómo desarrollar una aplicación en JavaFX que consiste en dos ventanas, donde la primera ventana incluye un botón que, al ser presionado, abre la segunda ventana. Este tipo de diseño es común en aplicaciones de software que requieren interacciones entre múltiples interfaces.

Configuración del Entorno en Eclipse

Para seguir este tutorial, asegúrate de tener instalado Java Development Kit (JDK) 11 o superior y Eclipse IDE. JavaFX ya está incluido en JDK 11 y versiones superiores.

  1. Instalación del Plugin e(fx)clipse: Abre Eclipse, ve a Help > Eclipse Marketplace, busca e instala e(fx)clipse, que facilita el desarrollo en JavaFX.

Creación del Proyecto

  1. Crear un Nuevo Proyecto JavaFX: En Eclipse, ve a File > New > Project..., elige JavaFX Project y sigue los pasos para configurar tu proyecto.

Implementación del Código

Vamos a crear dos clases en Eclipse, cada una correspondiendo a una ventana diferente de la aplicación.

Ventana 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 btnOpen = new Button("Abrir Segunda Ventana");
        btnOpen.setOnAction(event -> {
            SecondWindow.display();
        });

        StackPane layout = new StackPane();
        layout.getChildren().add(btnOpen);
        Scene scene = new Scene(layout, 300, 250);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
Segunda Ventana
package application;

import javafx.stage.*;
import javafx.scene.*;
import javafx.scene.layout.*;
import javafx.scene.control.*;
import javafx.geometry.*;

public class SecondWindow {

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

        Label label = new Label("Esta es 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

  • Ventana Principal (MainApplication): Define un botón que, al ser clickeado, llama al método display() de la clase SecondWindow.
  • Segunda Ventana (SecondWindow): Esta clase contiene un método estático display() que configura y muestra una nueva ventana. Utiliza Modality.APPLICATION_MODAL para bloquear la interacción con la ventana principal mientras la segunda ventana está abierta.

Ejecución y Pruebas

Para probar la aplicación, ejecuta MainApplication como una aplicación Java desde Eclipse. Deberías ver la ventana principal con un botón para abrir la segunda ventana.

Conclusión

Este tutorial demuestra cómo gestionar múltiples ventanas en una aplicación JavaFX. Este enfoque es fundamental para aplicaciones que requieren interfaces de usuario separadas para diferentes tareas. Con JavaFX y Eclipse, puedes construir interfaces complejas y modulares con relativa facilidad.

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

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.

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