JavaFX | Clase DirectoryChooser

La clase DirectoryChooser es parte de JavaFX. La clase DirectoryChooser muestra un cuadro de diálogo de selección de directorios que permite al usuario seleccionar un directorio en particular. Abrir un cuadro de diálogo de directorio siempre puede resultar en una no operación, es decir, el archivo nulo que se devuelve. La clase DirectoryChooser hereda la clase Object.

Constructor de la clase:

  • DirectoryChooser() : Crea un nuevo objeto de selector de directorio.

Métodos comúnmente utilizados:

Método Explicación
obtenerDirectorioInicial() Devuelve el directorio inicial del selector de directorio.
obtenerTitulo() Devuelve el título del selector de directorio.
setInitialDirectory(Valor del archivo) Establece el valor de la propiedad initialDirectory
setTitle(String t) Establece el título del selector de directorio.
showDialog(Ventana w) Muestra un nuevo cuadro de diálogo de selección de directorio.

Los siguientes programas ilustran el uso de la clase DirectoryChooser:

  1. Programa Java para crear DirectoryChooser y agregarlo al escenario: En este programa crearemos un selector de directorio llamado dir_chooser . Cree una etiqueta con nombre de etiqueta y un botón con nombre de botón . Cree un EventHandler para manejar los eventos cuando se presiona el botón. Cuando se presiona el botón, aparece un diálogo de selección de directorio y el directorio seleccionado se muestra como texto en la etiqueta . Agregue la etiqueta y el botón a Vbox y agregue VBox a la escena y agregue la escena al escenario, y llame a la función show() para mostrar los resultados finales.

    // Java Program to create DirectoryChooser
    // and add it to the stage
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.*;
    import javafx.scene.layout.*;
    import javafx.stage.Stage;
    import javafx.geometry.*;
    import javafx.scene.paint.*;
    import javafx.scene.canvas.*;
    import javafx.scene.text.*;
    import javafx.scene.Group;
    import javafx.scene.shape.*;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.collections.*;
    import java.io.*;
    import javafx.stage.DirectoryChooser;
      
    public class DirectoryChooser_1 extends Application {
      
        // launch the application
        public void start(Stage stage)
        {
      
            try {
      
                // set title for the stage
                stage.setTitle("DirectoryChooser");
      
                // create a Directory chooser
                DirectoryChooser dir_chooser = new DirectoryChooser();
      
                // create a Label
                Label label = new Label("no files selected");
      
                // create a Button
                Button button = new Button("Show");
      
                // create an Event Handler
                EventHandler<ActionEvent> event = 
                new EventHandler<ActionEvent>() {
      
                    public void handle(ActionEvent e)
                    {
      
                        // get the file selected
                        File file = dir_chooser.showDialog(stage);
      
                        if (file != null) {
                            label.setText(file.getAbsolutePath() + "  selected");
                        }
                    }
                };
      
                button.setOnAction(event);
      
                // create a VBox
                VBox vbox = new VBox(30, label, button);
      
                // set Alignment
                vbox.setAlignment(Pos.CENTER);
      
                // create a scene
                Scene scene = new Scene(vbox, 800, 500);
      
                // set the scene
                stage.setScene(scene);
      
                stage.show();
            }
      
            catch (Exception e) {
      
                System.out.println(e.getMessage());
            }
        }
      
        // Main Method
        public static void main(String args[])
        {
      
            // launch the application
            launch(args);
        }
    }

    Producción:

  2. Programa Java para crear DirectoryChooser, establecer el título, el directorio inicial y agregarlo al escenario: En este programa crearemos un selector de directorio llamado dir_chooser . Cree una etiqueta con nombre de etiqueta y un botón con nombre de botón . Establezca el título y el directorio inicial del selector de directorio utilizando la función setTitle() y setInitialDirectory() . Crearemos un EventHandler para manejar los eventos cuando se presione el botón. Cuando se presiona el botón, aparece un diálogo de selección de directorio y el directorio seleccionado se muestra como texto en la etiqueta . Agregue la etiqueta y el botón a Vbox y agregue el VBoxa la escena y agregue la escena al escenario, y llame a la función show() para mostrar los resultados finales.

    // Java Program to create DirectoryChooser,
    // set title, initial directory
    // and add it to the stage
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.*;
    import javafx.scene.layout.*;
    import javafx.stage.Stage;
    import javafx.geometry.*;
    import javafx.scene.paint.*;
    import javafx.scene.canvas.*;
    import javafx.scene.text.*;
    import javafx.scene.Group;
    import javafx.scene.shape.*;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.collections.*;
    import java.io.*;
    import javafx.stage.DirectoryChooser;
      
    public class DirectoryChooser_2 extends Application {
      
        // launch the application
        public void start(Stage stage)
        {
      
            try {
      
                // set title for the stage
                stage.setTitle("DirectoryChooser");
      
                // create a Directory chooser
                DirectoryChooser dir_chooser = 
                       new DirectoryChooser();
      
                // set title
                dir_chooser.setTitle("Select directory");
      
                // set initial directory
                dir_chooser.setInitialDirectory(new File("e:\\"));
      
                // create a Label
                Label label = new Label("no files selected");
      
                // create a Button
                Button button = new Button("Show");
      
                // create an Event Handler
                EventHandler<ActionEvent> event =
                new EventHandler<ActionEvent>() {
      
                    public void handle(ActionEvent e)
                    {
                        // get the file selected
                        File file = dir_chooser.showDialog(stage);
      
                        if (file != null) {
                            label.setText(file.getAbsolutePath() + "  selected");
                        }
                    }
                };
      
                button.setOnAction(event);
      
                // create a VBox
                VBox vbox = new VBox(30, label, button);
      
                // set Alignment
                vbox.setAlignment(Pos.CENTER);
      
                // create a scene
                Scene scene = new Scene(vbox, 800, 500);
      
                // set the scene
                stage.setScene(scene);
      
                stage.show();
            }
      
            catch (Exception e) {
      
                System.out.println(e.getMessage());
            }
        }
      
        // Main Method
        public static void main(String args[])
        {
      
            // launch the application
            launch(args);
        }
    }

    Producción:

Nota: Es posible que los programas anteriores no se ejecuten en un IDE en línea; use un compilador fuera de línea.

Referencia: https://docs.oracle.com/javase/8/javafx/api/javafx/stage/DirectoryChooser.html

Publicación traducida automáticamente

Artículo escrito por andrew1234 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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