Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    JTree: visualizzazione di un livello del JTree a partire dal valore del nodo

    Ripeto qui una risposta che ho dato ad una discussione precedente, per chi se ne fosse accorto: sì la mia è una scelta consapevole ma visto che la discussione era vecchia poteva destare poca attenzione! Oppure i JTree fanno schifo a molti!
    Il mio problema è questo: ogni nodo del mio albero(JTree) ha un numero, quindi immaginate sia cartelle che foglie con associato solo un valore numerico intero.
    Io vorrei far aprire l'albero automaticamente una volta selezionato un intero.
    Ad esempio se selezione 7 mi dovrà apparire un albero esploso finchè nn trovo il valore 7, con tutti gli altri nodi(che non sono predecessori) non esplosi.ad es:


    1-->
    ........2 --->
    ........3//anche se ha figli non esploso.
    ...........4 -->
    ...........5 -->
    ...............7
    .......19 // non esploso
    78 // non esploso


    Spero di essermi spiegata bene.
    Comunque non saprei come farlo aprire automaticamente.
    Io ora metto i valori del DefaultMutableTreeNode in un JTree e visualizzo l'albero che appare tutto inesploso, ed è l'utente che apre le cartelle a suo piacimento.
    Ma vorrei fare apparire l'albero aperto al livello in cui si trova il valore che gli passo in modo automatico...qualcuno sa come farlo?
    Grazie molte

  2. #2
    Ho letto qualcosina sui JTree non dovrebbe essere una cosa difficilissima.

    Asseriamo che tutti i nodi siano DefaultMutableTreeNode.
    Avendo un oggetto JTree tree, recuperi il root node con
    codice:
    (DefaultMutableTreeNode) tree.getModel().getRoot()
    e qui inizi a ciclare tutti i child, leggendo la reference di DefaultMutableTreeNode e usando getChildCount() e getChildAt(). Per ogni child ti recuperi gli Integer usando getUserObject() e li compari con 7. Se trovi 7 ricicli da capo tutti i child, li espandi ecc... altrimenti, partendo dal primo, recuperi di nuovo tutti i child e compari andando man mano piu' in profondità fin quando non lo trovi
    lolide
    Java Programmer

    Informati

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.