ListSelectionListener wywołuje metodę po wciśnięciu i zwolnieniu przycisku.

0

Witam, mam kolejny problem. Mam nadzieję, że tym razem łatwiejszy do rozwiązania. Stworzyłem metodę, która wypisuje do konsoli zawartość zaznaczonego elementu JListy. Problem w tym, że metoda ta wywołuje się dwa razy. Raz przy wciśnięciu przycisku myszy i drugi przy jego zwolnieniu. Wiem, że np. taki MouseListener posiada metody takie jak mouseClicked czy mousePressed pozwalające to ustawić. Jednak w dokumentacji ListSelectionListener nie widzę podobnych metod. Co muszę zrobić aby metoda wykonywała się tylko raz - przy wciśnięciu przycisku (lub przy zwolnieniu - wszystko jedno) ?

Kod metody:

    public Okno() {
        
        initComponents();
        
        jList1.addListSelectionListener(new ListSelectionListener() {
            
            @Override
            public void valueChanged(ListSelectionEvent event) {
            
                int rozmiarListy = jList1Model.getSize();
                            
                for(int x1=0; x1<rozmiarListy; x1++){
                    
                    if(jList1.isSelectedIndex(x1)){
                        
                        System.out.println(jList1Model.getElementAt(x1));
                    }
                    
                }
                  
            }
                        
        });
        
    }
1

dalem Ci odpowiedz w kodzie ostatnim :)

metoda isAdjusting umieszczona zaraz na poczatku w metodzie valueChanged

if (event.getValueIsAdjusting())
                        return;

1 użytkowników online, w tym zalogowanych: 0, gości: 1