• Manuales
    • Internet
      • Google
      • Redes sociales
    • Base de datos
      • DB4O
      • MySQL
      • PHPmyadmin
      • Oracle
      • SQLite
    • Programación
      • Front-end
        • Angular
        • HTML
        • CSS
        • Javascript
          • Web Components
        • TypeScript
      • Back-end
        • PHP
        • NestJS
      • Desktop
        • C
        • C++
        • C#
        • Java
          • JavaFX
        • Swift
        • Visual Basic .NET
      • Móvil
        • Android
        • Ionic
      • Scripting
        • Lua
          • Love 2D
        • Python
          • Django
        • ShellScript
      • Otros
        • Pseudocódigo
        • XQuery
    • Ofimática
      • Hoja de cálculo
      • Procesador de texto
    • Sistemas operativos
      • Linux
      • Mac OS
      • Windows
    • Software
    • Web
      • Drupal
      • E-Commerce
      • Foro
      • Joomla
      • WordPress
  • Ejercicios
    • Base de datos
    • Desktop
      • C#
      • Java
      • JavaFX
      • Visual Basic .NET
    • Web
      • HTML
      • Javascript
      • PHP
    • Comandos
      • Comandos Linux
    • Otros
      • Excel
      • Pseudocodigo
      • Xquery
    • Scripting
      • Lua
      • Python
      • Shellscript
    • Test
      • Java
  • Cursos
    • Curso Excel
    • Curso Java
    • Curso Love2D
    • Curso Pseudocódigo
    • Curso Python
    • Curso Visual Basic .NET
    • Curso PL/SQL
    • Udemy
  • Trabajos
  • Descargas
    • Recursos programación
    • Inglés
    • Libros
  • Tareas DAM/DAW
  • Manuales
    • Internet
      • Google
      • Redes sociales
    • Base de datos
      • DB4O
      • MySQL
      • PHPmyadmin
      • Oracle
      • SQLite
    • Programación
      • Front-end
        • Angular
        • HTML
        • CSS
        • Javascript
          • Web Components
        • TypeScript
      • Back-end
        • PHP
        • NestJS
      • Desktop
        • C
        • C++
        • C#
        • Java
          • JavaFX
        • Swift
        • Visual Basic .NET
      • Móvil
        • Android
        • Ionic
      • Scripting
        • Lua
          • Love 2D
        • Python
          • Django
        • ShellScript
      • Otros
        • Pseudocódigo
        • XQuery
    • Ofimática
      • Hoja de cálculo
      • Procesador de texto
    • Sistemas operativos
      • Linux
      • Mac OS
      • Windows
    • Software
    • Web
      • Drupal
      • E-Commerce
      • Foro
      • Joomla
      • WordPress
  • Ejercicios
    • Base de datos
    • Desktop
      • C#
      • Java
      • JavaFX
      • Visual Basic .NET
    • Web
      • HTML
      • Javascript
      • PHP
    • Comandos
      • Comandos Linux
    • Otros
      • Excel
      • Pseudocodigo
      • Xquery
    • Scripting
      • Lua
      • Python
      • Shellscript
    • Test
      • Java
  • Cursos
    • Curso Excel
    • Curso Java
    • Curso Love2D
    • Curso Pseudocódigo
    • Curso Python
    • Curso Visual Basic .NET
    • Curso PL/SQL
    • Udemy
  • Trabajos
  • Descargas
    • Recursos programación
    • Inglés
    • Libros
  • Tareas DAM/DAW

Abrir un dialogo en JavaFX

28/10/20190 comentarios

Hola a todos, hoy vamos a ver como abrir un dialogo o ventana en JavaFX.

Tarde o temprano, necesitamos abrir una ventana adicional en nuestra aplicación de JavaFX.

Para abrir otra ventana, se puede hacer de esta forma:


 @FXML
    private void abrirVentanaHija(ActionEvent event) {

        try {

            // Cargo la vista
            FXMLLoader loader = new FXMLLoader(getClass().getResource("/vista/VentanaHijaVista.fxml"));

            // Cargo la ventana
            Parent root = loader.load();
            
            // Creo el Scene
            Scene scene = new Scene(root);
            Stage stage = new Stage();
            stage.initModality(Modality.APPLICATION_MODAL);
            stage.setScene(scene);
            stage.showAndWait();

        } catch (IOException e) {
            Alert alert = new Alert(Alert.AlertType.ERROR);
            alert.setHeaderText(null);
            alert.setTitle("Error");
            alert.setContentText(e.getMessage());
            alert.showAndWait();
        }

    }

 

Vamos explicando paso a paso:


// Cargo la vista
FXMLLoader loader = new FXMLLoader(getClass().getResource("/vista/VentanaHijaVista.fxml"));

Con FXMLLoader, cargamos la vista a través de una ruta. Os recomiendo ponerlo de la forma que veis. También os aconsejo que metáis las vistas en un paquete.


// Cargo la ventana
Parent root = loader.load();

Con esto, cargo la ventana usando el loader, ya que me hará falta para crear el Stage y el Scene.


// Creo el Scene
Scene scene = new Scene(root);
Stage stage = new Stage();
stage.initModality(Modality.APPLICATION_MODAL);
stage.setScene(scene);
stage.showAndWait();

 

Aquí creamos el Scene con el root antes creado por el loader. Después, creo el Stage, lo inicializo en modo modal (hasta que no se cierre esa ventana, no me deja ir a cualquier otra). Por último, lo muestro y espero a que cierre, en el codigo se queda esperando de verdad.

Para cerrar la ventana hija, haremos lo que vimos en:

Cerrar una ventana en JavaFX

Este es el resultado final:

¿Quieres descargarte el proyecto? Aquí lo tienes.‎

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudar.

Compartir

Articulos relacionados

Como saber si un numero esta repetido en un array en Java

30/01/2023

Obtener el menor divisor de un número en Java

25/01/2023

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Donaciones

Si te gusta mi trabajo, invítame a un café.

¿Necesitas un servidor como el mío? Aquí lo tienes

alojamiento wordpress

Encontrar trabajo de informática

¡Gana dinero con tu web!

Registrate en publisuites desde aquí.

 

 

© Copyright 2022 Disco Duro de Roer. Todos los derechos reservados
  • Acerca de mí
  • Tutorias
  • Contacto
  • Foro DDR