Visualizzazione dei risultati da 1 a 4 su 4

Discussione: JList selected element

  1. #1

    JList selected element

    Ciao a tutti......
    Avrei bisogno di un suggerimento.....
    Dalla documentazione vedo che è possibile settare le modalità di selezione degli elementi di una JList( SINGLE_INTERVAL || MULTIPLE_INTERVAL || SINGLE).
    e se volessi fare in modo che l'utente possa selezionare al massimo due elementi??
    come potrei esprimere questo vincolo??

    grazie anticipatamente......... :
    ciauz:

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

    Re: JList selected element

    Originariamente inviato da frank1984
    e se volessi fare in modo che l'utente possa selezionare al massimo due elementi??
    come potrei esprimere questo vincolo??
    Dovrei provare perché non l'ho mai fatto ma in linea teorica dovresti implementare un "tuo" ListSelectionModel da assegnare poi al JList. Invece di reimplementare tutti i metodi da zero (fattibile ma non banale/immediato), sarebbe preferibile estendere DefaultListSelectionModel e fare l'override di quei metodi che alterano la selezione, "aggiustando" gli indici (o rifiutando del tutto la operazione) in modo da realizzare il vincolo che hai detto.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    forse usando i metodi getMaxSelectionIndex() , getMinSelectionIndex() , clearSelection() ed una variabile contatore int x potrei farcela.
    Stasera o domani mattina proverò a farlo e poi ti faccio sapere... :
    ciauz:

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da frank1984
    forse usando i metodi getMaxSelectionIndex() , getMinSelectionIndex() , clearSelection() ed una variabile contatore int x potrei farcela.
    No.

    Consiglio. Visto che deduco non hai "confidenza" con il ListSelectionModel e come tratta le invocazioni per la (de)selezione: fai una tua classe che estende DefaultListSelectionModel e fai l'override di alcuni metodi, tra cui sicuramente addSelectionInterval e setSelectionInterval (magari poi anche gli altri di rimozione/inserimento) facendo in modo che passino gli argomenti pari-pari al metodo "super". E in questi metodi oltre alla invocazione super.xxxx dei metodi metti anche un bel System.out.println(...) che stampa i valori degli argomenti (indica in output il metodo ovviamente per differenziare!).

    Quindi crea un JList, mettici dentro una manciata di elementi stringhe che ti pare e setta il tuo nuovo list selection model. Quindi prova a "giocare" con il JList usando tastiera e mouse, allungando la selezione partendo da un elemento, sia in "avanti" (verso il basso), sia "all'indietro" (verso l'alto). E guarda come sono gli indici passati ai metodi.

    Solo quando avrai capito come funziona ..... allora intuirai sicuramente come "vincolare" la selezione come vuoi.
    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 © 2025 vBulletin Solutions, Inc. All rights reserved.