Creando una Aplicación de JavaFX con Múltiples Ventanas en Eclipse

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:

  1. Instalar JDK 11 o superior: JavaFX está incluido en JDK desde la versión 11.
  2. 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

  1. Nuevo Proyecto JavaFX: Abre Eclipse y crea un nuevo proyecto JavaFX seleccionando File > New > Project.... Selecciona JavaFX 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:

  1. 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.
  2. 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.
  3. 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
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.