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:
- 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:
- 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