Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    5

    [JAVA] problema con getValueIsAdjusting in JList

    Ciao a tutti!

    Sono un novellino autodidatta di java che sta costruendo un'applicazione gestionale.
    Il mio problema è questo: ho creato una JList in un menu che mi permette di selezionare il nome dell'inquilino di cui modificare i dati, e quindi mi apre un'apposita finestra a selezione avvenuta.

    Il problema principale che ho è che mi apre due finestre identiche invece che una. Ho provato a giocare un po' con il getValueIsAdjusting, ma ho risultati a mio parere curiosi.

    Il codice:
    codice:
    listSM.addListSelectionListener (new ListSelectionListener() {
         public void valueChanged (ListSelectionEvent e) {
              if (e.getValueIsAdjusting()==false){
                   System.out.println(e.getLastIndex());
                   System.out.println(e.getValueIsAdjusting());
                   ...apertura della finestra...
              }
         }
    }
    I due println li ho messi come check. Il problema che mi si presenta è che in tutte due le letture il valore di getValueIsAdjusting risulta false.
    La cosa ancora più strana è che se commento l'if il valore risulta entrambe le letture true, e se lascio l'if ma con la clausula ==true anche in questo caso risulta tutte e due le volte true.
    Risultato: comunque io agisca mi apre sempre due finestre identiche.
    Non ho proprio idea di cosa fare.

    Grazie mille in anticipo!

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

    Re: [JAVA] problema con getValueIsAdjusting in JList

    Originariamente inviato da raulgb
    Il problema principale che ho è che mi apre due finestre identiche invece che una. Ho provato a giocare un po' con il getValueIsAdjusting, ma ho risultati a mio parere curiosi.
    Innanzitutto sei sicuro che il listener sia registrato 1 volta sola? Non è che per qualche motivo passi 2 volte dal addListSelectionListener??
    Questo giusto solo per chiarire.

    A parte questo, la logica del "value is adjusting" è molto semplice. Se ti muovi da tastiera ottieni 1 solo evento con valueIsAdjusting=false. Se ti muovi con il mouse hai N eventi (fintanto che ti muovi sulla lista tenendo premuto il tasto del mouse) ognuno con valueIsAdjusting=true e solo quando rilasci il pulsante del mouse ottieni 1 evento con valueIsAdjusting=false.

    Se testi che valueIsAdjusting=true accetti il "trascinamento" (e quindi una selezione non "definitiva"), se testi che valueIsAdjusting=false accetti solo la selezione "definitiva".
    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.