jcombobox zmiana wartosci

0

Witam
Jak wylapac zmiane w combobox ale wywolana przez usera, tzn. poprzez pisanie tekstu badz wybraniu elementu comboboxa.
actionPerformed oraz itemStateChanged
dzialaja rowniez podczas JComboBox::addItem(..) a tego nie chce
Tylko w przypadku zmiany usera.

0

Jeśli nie chcesz reakcji listenera to możesz go wyłączyć (remove) wykonać co chcesz i na końcu ponownie go dodać.

0

keyTyped wykrywa pisanie tekstu. A co do zmiany w ComboBox to chyba tylko itemStateChanged. Przeciez jak sama nazwa wskazuje ma reagowac na zmiane stanu, a dopisanie jest przeciez taka zmiana... Jesli nie chcesz na to reagowac to bedziesz musial sobie porobic jakies flagi/zmienne i przy zmianie wywolanej itemStateChanged sprawdzac czy czasami w komponencie nie ubylo/przybylo nowych pol.
Mozesz to zrobic w nastepujacy sposob: np. wprowadzasz wszystkie wpisy (Item'y) do Vector'a na starcie programu. Potem gdy wywolany zostanie itemStateChanged to do nowego Vectora wprowadzasz wszystkie Item'y z tego samego ComboBox'a, teraz porownujesz dwa Vector'y - jesli sa takie same to znaczy ze uzytkownik cos wybral, jesli sa rozne to znaczy ze nastapila modyfikacja Item'ow. Moglbys tez robic kopie komponentow i je porownywac... ale chyba pojdzie na to wiecej pamieci.

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