Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Aggiorna JTree

  1. #1

    Aggiorna JTree

    Ciao,
    ho un Jtree che ha una struttura ad albero, ed alcuni elementi dell'albero hanno le foglie...
    Ciò che accade è che quando cancello tutte le foglie dal database di un elemento dell'albero non si aggiorna GRAFICAMENTE in realtime (e quando clicco sugli elementi non più presenti nel database mi da nullpointerexception giustamente) ma quando riavvio l'applicazione le foglie cancellate non compaiono più e quindi risulta aggiornato...
    Devo richiamare un metodo per aggiornarlo in real time?

    Essendo un Jtree immagino che la soluzione potrebbe girare intorno al metodo drop..

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Aggiorna JTree

    Originariamente inviato da lukeman83
    ed alcuni elementi dell'albero hanno le foglie...
    Ciò che accade è che quando cancello tutte le foglie dal database di un elemento dell'albero non si aggiorna GRAFICAMENTE in realtime

    Essendo un Jtree immagino che la soluzione potrebbe girare intorno al metodo drop..
    Qui centra il "model". Se vuoi davvero togliere un nodo dall'albero, cioè modificare la sua struttura dati interna, devi farlo sul model, in modo che lui non "esponga" più tale nodo e notifichi la modifica ai listeners.
    Quale model stai usando? Quello di default (DefaultTreeModel)? Se usi removeNodeFromParent() di DefaultTreeModel, è già lui che si occupa di modificare la struttura e inviare la notifica.
    Se non hai usato questo modello o hai fatto altro ..... non lo so ....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    si, uso il removeNodeFromParent() di DefaultTreeModel ma viene aggiornato al riavvio dell'applicazione e io vorrei che venisse aggiornato in real time

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da lukeman83
    si, uso il removeNodeFromParent() di DefaultTreeModel ma viene aggiornato al riavvio dell'applicazione e io vorrei che venisse aggiornato in real time
    Lo ripeto eh: removeNodeFromParent() modifica già di per sé la struttura dati rimuovendo il nodo e invia la notifica ai listener.
    Cosa hai fatto esattamente a livello di codice non lo posso sapere ..... può darsi che hai fatto qualcosa di concettualmente errato.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    l'ho capito che invia automaticamente la notifica ma è vero anche che si aggiorna solo al riavvio per questo chiedevo...
    potrebbe essere un problema di listener di qualsiasi tipo?

  6. #6
    Scusami ma ho avuto un attimo di confusione..
    avevi ragione...quando si applica removefromparent() va tutto bene...
    ma se volessi cancellare tutte le foglie in un colpo solo con removeallChildren()
    come faccio ad aggiornare?anche in questo caso viene inviata la notifica al listener?

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da lukeman83
    avevi ragione...quando si applica removefromparent() va tutto bene...
    Ok

    Originariamente inviato da lukeman83
    ma se volessi cancellare tutte le foglie in un colpo solo con removeallChildren()
    come faccio ad aggiornare?anche in questo caso viene inviata la notifica al listener?
    La modifica diretta su un nodo (es. removeAllChildren() su un DefaultMutableTreeNode) in effetti non si ripercuote automaticamente sul model. A quel punto potresti fare un reload() sul model, dovrebbe bastare. O in modo più specifico nodeStructureChanged(TreeNode) sempre del model.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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 © 2026 vBulletin Solutions, Inc. All rights reserved.