El constructor del un Spinner:

JSpinner spinner = new JSpinner();

Donde en constructor se puede asociar un modelo determinado. Los métodos más utilizados para este elemento son:

spinner.setModel(modeloNumero);
spinner.getValue();
spinner.setValue(1)

Manejo de eventos

Los eventos de un spinner se evaluar mediante un ChangeListener, bien desde el elemento o directamente desde el modelo

spinner.addChangeListener(new ChangeListener() {
    @Override
    public void stateChanged(ChangeEvent e) {
        System.out.println(spinner.getModel().getValue());

        if(spinner.getModel().getValue() == modeloNumero.getMaximum()){
            getToolkit().beep();
        }
    }
});

Modelo de datos

Los modelos de un spinner pueden ser de direferente tipo:

Modelo de número:

SpinnerNumberModel modeloNumero = new SpinnerNumberModel();
modeloNumero.setMaximum(100);
modeloNumero.setMinimum(1);
modeloNumero.setStepSize(5);

Modelo de fechas:

SpinnerDateModel modeloFechas = new SpinnerDateModel();
spinner.setModel(modeloFechas);

Modelo lista:

SpinnerListModel modeloListaSpinner = new SpinnerListModel(opciones);
spinner.setModel(modeloListaSpinner);