W moim programie chcę użyć JSpinner dla numeru. Ta liczba będzie później używana do obliczenia czegoś. Za każdym razem, gdy użytkownik kliknie jeden z przycisków pokrętła (w górę lub w dół), chcę, aby wynik aktualizował się automatycznie. Ponieważ nie możesz dodać ActionListener do JSpinnera (co moim zdaniem jest naprawdę dziwne), pytam tutaj, jak zrobić coś podobnego do tego (mam już gotowy ActionListener, który można zmienić w dowolnym innym detektorze kierunek).JSpinner ActionListener alternative
5
A
Odpowiedz
6
można dodać ChangeListener
do wirówki. Będzie to uruchamiane przez naciśnięcie przycisku (lub bezpośrednią edycję pola).
spinner.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
// handle click
}
});
+0
+1, łatwiejsze niż przy użyciu DocumentListener. – camickr
1
Za każdym razem, gdy użytkownik kliknie jeden z przycisków pokrętła (w górę lub w dół), chcę, aby wynik aktualizował się automatycznie.
Dodaj DocumentListener
do Document
pola tekstowego, które jest używane jako edytor przędzarki.
Edit:
JSpinner.DefaultEditor editor = (JSpinner.DefaultEditor)number.getEditor();
JTextField textField = editor.getTextField();
textField.getDocument().addDocumentListener(new DocumentListener()
{
public void insertUpdate(DocumentEvent e)
{
System.out.println("insert");
}
public void removeUpdate(DocumentEvent e)
{
System.out.println("remove");
}
public void changedUpdate(DocumentEvent e) {}
});
Twoja odpowiedź może być tego posta: http://stackoverflow.com/a/2553401/2319378 – LionC