Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [Java] Tree Listener

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    315

    [Java] Tree Listener

    Salve,
    è possibile usare il metodo valueChanged(TreeSelectionEvent e) dell'interfaccia TreeSelectionListener solo se il nodo non è stato selezionato dal mouse (intercettato con una classe MouseAdapter)?

    Vorrei che un listener potesse escludere l'altro.

    Grazie

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    No, è una cosa devi gestire tu a mano.
    Il TreeSelectionListener viene notificato quando la selezione nel model cambia. Poco importa chi l'ha fatta cambiare.

    Dovrai fare in modo che, nel momento in cui il nodo viene cliccato col mouse, il MouseAdapter corrispondente vada a settare una proprietà (un banalissimo flag booleano) da qualche parte che indichi all'applicazione che la selezione è avvenuta tramite clic. Il TreeSelectionListener, a questo punto, dovrà verificare tale proprietà per sapere se deve agire oppure no.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    315
    Quindi il listener del mouse viene sempre eseguito prima?

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da koala81
    Quindi il listener del mouse viene sempre eseguito prima?
    Questo è da verificare (io credo di sì, in quanto sarà l'evento scatenato dal mouse a modificare lo stato del modello del JTree) ed è sicuramente uno dei "punti deboli" della cosa.

    Rimane da capire il perchè di questa "gestione" separata delle cose. Non escludo che si debba rivedere l'impostazione della cosa poichè, sinceramente, fatico a capire quale comportamento differente ci debba essere a seconda che la selezione avvenga tramite mouse o tramite tastiera.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.