TreeView es uno de los controles más importantes que implementa una vista jerárquica de los datos en un formato de árbol en la programación Java basada en GUI usando JavaFX. «Jerárquico» significa que algunos elementos se colocan como elementos subordinados a otros, por ejemplo, un árbol se usa comúnmente para mostrar el contenido del sistema de archivos en el que los archivos individuales están subordinados al directorio al que pertenecen. TreeView es una implementación conceptual simple del programa GUI de Java que utiliza una estructura de datos de árbol.
Un árbol se representa con un solo Node raíz que indica el comienzo de un árbol, debajo del Node raíz se adjuntan uno o más Nodes secundarios, los Nodes secundarios son de dos tipos
- Nodes de hoja
- Nodes de rama
- Los Nodes de hoja son Nodes que no tienen hijos, también llamados (Nodes terminales) , mientras que los Nodes de rama son Nodes que forman Nodes raíz para subárboles. Una secuencia de Nodes que va desde la raíz hasta un Node específico se conoce como ruta.
- La función más útil de TreeView es que automáticamente proporciona barras de desplazamiento cada vez que el tamaño del árbol excede las dimensiones de la vista.
Cómo implementar TreeView usando la clase JavaFX:
1. Importación de bibliotecas necesarias:
Invocamos las bibliotecas necesarias para activar los controles JavaFX y reunir todos los recursos para usar TreeView como se muestra a continuación:
importar javafx.aplicación.Aplicación;
importar javafx.scene.Scene;
importar javafx.scene.control.TreeItem;
importar javafx.scene.control.TreeView;
importar javafx.scene.layout.VBox;
importar javafx.stage.Stage;
2 . Crear una vista de árbol:
Primero, creamos un objeto TreeView llamando a una nueva instancia de la clase TreeView, un ejemplo de cómo configurar un objeto para la clase TreeView se muestra en el siguiente ejemplo:
TreeView tV = new TreeView();
3. Agregar TreeView a un gráfico de escena:
Nuestra próxima tarea es agregar TreeView a JavaFx Scene Graph para que pueda ser visible, el siguiente fragmento de código se usa para hacer cumplir esta acción:
inicio de vacío público (Etapa etapa primaria) {
TreeView tV = new TreeView();
VBox vb = nuevo VBox (tV);
Escena s = nueva Escena (vb);
escenario primario.setScene(s);
etapaprimaria.show();
}
4. Agregar elementos de árbol a TreeView:
Los elementos que se mostrarán mediante JavaFx TreeView están representados por TreeItem Class (javafx.scene.control.TreeItem).
TreeItem rItem = new TreeItem(“Tutoriales”);
TreeItem wItem = new TreeItem(“Tutoriales web”);
wItem.getChildren().add(nuevo TreeItem(“Tutorial HTML”));
wItem.getChildren().add(nuevo TreeItem(“Tutorial HTML5”));
wItem.getChildren().add(nuevo TreeItem(“Tutorial CSS”));
wItem.getChildren().add(nuevo TreeItem(“Tutorial SVG”));
rItem.getChildren().add(webItem);
TreeItem javaItem = new TreeItem(“Tutoriales de Java”);
javaItem.getChildren().add(nuevo TreeItem(“Lenguaje Java”));
javaItem.getChildren().add(nuevo TreeItem(“Colecciones Java”));
javaItem.getChildren().add(nuevo TreeItem(“Simultaneidad de Java”));
rootItem.getChildren().add(javaItem);
TreeView tV = new TreeView();
TV.setRoot(rElemento);
5. Agregar niños a TreeView:
En TreeView, la relación padre-hijo entre elementos se ejecuta de manera recursiva, es decir, TreeItem puede tener otras instancias de TreeItem como hijos, usamos el método getChildren() para obtener elementos de JavaItem y agregarlo a TreeView usando el método add() como se muestra en los siguientes fragmentos de código:
TreeItem javaItem = new TreeItem(“Tutoriales de Java”);
javaItem.getChildren().add(nuevo TreeItem(“Lenguaje Java”));
javaItem.getChildren().add(nuevo TreeItem(“Colecciones Java”));
javaItem.getChildren().add(nuevo TreeItem(“Simultaneidad de Java”));
TreeItem rItem = new TreeItem(“Tutoriales”);
rItem.getChildren().add(javaItem);
6. Ocultar elemento raíz de TreeView:
El último y principal paso es ocultar el elemento raíz, es decir, el Node raíz de un TreeView de JavaFx. Lo hacemos invocando el método setShowRoot() que se inicializa con un parámetro booleano falso.
tV.setShowRoot(false);
Java
// Java Program to implement javaFx based TreeView // Importing all necessary libraries import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.TreeItem; import javafx.scene.control.TreeView; import javafx.scene.layout.VBox; import javafx.stage.Stage; // Main class // This class is extending Application class public class GFG extends Application { // Main driver method public static void main(String[] args) { launch(args); } // @Override public void start(Stage primaryStage) { // Initializing variable to TreeItem element // All arguments are custom entries TreeItem rItem = new TreeItem("Tutorials"); // Initializing variable for TreeItem variable TreeItem wItem = new TreeItem("Web Tutorials"); // Adding labels for elements to TreeItem // Custom entries wItem.getChildren().add( new TreeItem("HTML Tutorial")); wItem.getChildren().add( new TreeItem("HTML5 Tutorial")); wItem.getChildren().add( new TreeItem("CSS Tutorial")); wItem.getChildren().add( new TreeItem("SVG Tutorial")); rItem.getChildren().add(wItem); // Initializing new TreeItem TreeItem javaItem = new TreeItem("Java Tutorials"); javaItem.getChildren().add( new TreeItem("Java Language")); javaItem.getChildren().add( new TreeItem("Java Collections")); javaItem.getChildren().add( new TreeItem("Java Concurrency")); rootItem.getChildren().add(javaItem); // Creating an object of TreeView class TreeView tV = new TreeView(); tV.setRoot(rootItem); tV.setShowRoot(false); // Creating an object of VBox class VBox vb = new VBox(tV); // Creating an object of Scene class Scene s = new Scene(vb); // Now, setting the scene for primaryStage primaryStage.setScene(s); // Finally, display all the elements // using show() method primaryStage.show(); } }
Producción :
Nota: Los elementos ingresados en la imagen de arriba son solo para mostrar como ejemplo, puede etiquetar los elementos en TreeView según el contexto de la situación.
Publicación traducida automáticamente
Artículo escrito por ravi.geek24 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA