Elementos gráficos – Árboles

Posted by in Componentes JavaFX, Java, JavaFx

Al igual que en swing, el javafx los arboles representan un componente muy completo a la hora de trabajar ya que tiene multitud de posibilidades y representación de datos. La jerarquía de componentes es la siguiente:

  • TreeView
    • TreeItem (root)
      • TreeItem (nodo)
        • TreeItem (hoja)

En este caso tan solo existe un tipo de componente, al cual se le puede asociar un string que será el texto que acompañe al nodo y una imagen. Para poder hacer eso se debe crear un objeto de tipo ImageView al cual se le asocia una imagen:

Para configurar la estructura del árbol se utilizan los métodos setRoot y add para añadir los nodos en el sitio correspondiente.

Hay que tener en cuenta que los nodos no se añaden a los arboles, sino que el nodo raíz se setea en el árbol y el resto de nodos se agregan al nodo raíz o donde se quieran colocar. Algunos de los principales métodos utilizados son:

Manejar la selección

Para poder manejar la selección del árbol se puede realizar en el momento del cambio o cuando se pulse un botón. La diferencia está en utilizar un EventHandler para la propiedad de selección o acceder directamente al nodo seleccionado del modelo de selección. Si se quiere evaluar en el momento del cambio sería:

Donde el objeto newValue representa el nuevo nodo seleccionado. Para poder trabajar correctamente se debe realizar un casteo, de forma que se puedan acceder a todos los métodos del TreeItem.

En el caso de querer acceder al nodo directamente sería:

Agregar o borrar nodos

Para agregar o borrar nodos se utilizan los métodos add y remove asociados al nodo que donde se quiere borrar. Para ello, si se quiere agregar/borrar sobre el nodo que está seleccionado sería:

A la hora de eliminar es algo más complejo ya que primero hay que comprobar si el nodo tiene hijos para impedir el borrado completo de la rama