Buscar
Social
Ofertas laborales ES

Foro sobre Java EE > Como recorrer un HasHmap para agregar a un Jtree

BUenas, resulta que tengo un desarrollo que hacer en un proyecto donde tengo varios HasHmap<String,Object>

donde dentro de este mismo HasMap hay otros hasMap guardado dentro de ellas.

Lo que no he podido hacer es usando TreeModel o algún método en especifo de Jtree para que me genere el arbol con todas las ramificaciones posibles de los valores alamacenados

Haciendo caso de que cada valor puede tener otra llave-objeto.

Ejemplo
HashMap<String, Object> hash1 = new HashMap<String,Object>
hash1.put("valor1",1);


HashMap<String, Object> hash2 = new HashMap<String,Object>
hash2.put("valor2,2);
hash2.put("hasmap1",hash1);


Con ese ejemplo, siendo el mas sencillo, cuando en este momento tengo como 10 hashamp guardados uno entre otros, para al final usar el Jtree y que me visualice todos esos valores en un árbol como si fueran ramificaciones


Agradezco mucho que alguien me pueda guiar en este problema.

enero 28, 2014 | Unregistered CommenterYesid Armando

A partir de este tutorial, puedes construir la representación del árbol que quieras:

http://docs.oracle.com/javase/tutorial/uiswing/components/tree.html

Otra cuestión diferente es recorrer esa maraña de Map que tienes. ¿No puedes usar otra representación de datos más manejable?.

enero 28, 2014 | Registered Commenterchoces

Buenas,

Recorrer una estructura de arbol (aunque sea de maps) con un algoritmo sencillo como el depth-first (http://en.wikipedia.org/wiki/Depth-first_search) es bastante trivial.

Aqui te pongo un ejemplo que deberia funcionar con tu estructura. Solo te queda adaptarlo para que vaya montando el jtree:


private static void walkTree(Map<String, Object> map) {
for (Object item : map.values()) {
if (Map.class.isAssignableFrom(item.getClass())) {
walkTree((Map) item);
} else {
System.out.println(item);
}
}
}

Un saludo

enero 29, 2014 | Unregistered CommenterUnoPorAhi