2013-04-26 10 views
5

Nel mio programma, voglio utilizzare un JSpinner per un numero. Questo numero verrà in seguito utilizzato per calcolare qualcosa. Ogni volta che l'utente fa clic su uno dei pulsanti di selezione (su o giù), voglio che il risultato si aggiorni automaticamente. Dato che non puoi aggiungere un ActionListener a un JSpinner (che penso sia davvero strano), ti sto chiedendo qui come fare qualcosa di simile a questo (ho già un ActionListener pronto per questo, che può essere cambiato in qualsiasi altro listener di corso).Alternativa JSpinner ActionListener

+1

La tua risposta potrebbe essere questo post: http://stackoverflow.com/a/2553401/2319378 – LionC

risposta

6

si potrebbe aggiungere un ChangeListener alla filatrice. Questo verrà attivato premendo il pulsante (o una modifica diretta del campo).

spinner.addChangeListener(new ChangeListener() {  
    @Override 
    public void stateChanged(ChangeEvent e) { 
    // handle click 
    } 
}); 
+0

+1, più facile che usare un DocumentListener. – camickr

1

Ogni volta che l'utente fa clic su uno dei pulsanti di selezione (su o giù), voglio che il risultato si aggiorni automaticamente.

Aggiungi un DocumentListener alla Document del campo di testo che viene utilizzato come l'editor del filatore.

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) {} 
}); 
+0

Ti piace questo? '((JSpinner.DefaultEditor) spinner.getEditor()). GetTextField(). GetDocument(). AddDocumentListener (new DocumentListener() {...}' Non sembra funzionare ... – Creator13

+0

@ Creator13, Sì, questo è il codice generale. Funziona bene per me Anche se il ChangeListener è la strada da percorrere – camickr