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.
- 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
- Crear un Nuevo Proyecto JavaFX: En Eclipse, ve a
File > New > Project...
, eligeJavaFX 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étododisplay()
de la claseSecondWindow
. - Segunda Ventana (
SecondWindow
): Esta clase contiene un método estáticodisplay()
que configura y muestra una nueva ventana. UtilizaModality.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.
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.