Grazie per la risposta e mi scuso per non aver aperto un nuovo thread;
quindi non era una cosa poi così semplice! non ce l'avrei fatta con le mie conoscenze!!
Ecco come ho impostato il codice....
....ho messo il tuo codice nella Classe SpinnerOrario():
	codice:
	package utility;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import javax.swing.JSpinner;
import javax.swing.SpinnerDateModel;
public class SpinnerOrario extends JSpinner {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private class MySpinnerDateModel extends SpinnerDateModel {
	        
	        /**
		 * 
		 */
		private static final long serialVersionUID = 1L;
		
		private Date earliestDate, endDate;
	    private int field;
	    GregorianCalendar cal = new GregorianCalendar();
	    GregorianCalendar tempCal = new GregorianCalendar();
	    
	    public Object getNextValue()  {
	        
	        Date actualDate = this.getDate();
	        cal.setTime(actualDate);
	        
	        tempCal.setTime(actualDate);
	        tempCal.add(field, 15);
	                                              
	        if (!tempCal.getTime().after(endDate)) {                
	            cal.add(field, 15);
	        }
	        
	        return cal.getTime();  
	    } // FINE METODO
	    
	    public Object getPreviousValue() {
	        
	        Date actualDate = this.getDate();
	        cal.setTime(actualDate);
	        
	        tempCal.setTime(actualDate);
	        tempCal.add(field, -15);
	                                              
	        if (!tempCal.getTime().before(earliestDate)) {                
	            cal.add(field, -15);
	        }
	        
	        return cal.getTime();
	    } // FINE METODO
	    
	    public MySpinnerDateModel(Date startDate, Date earliestDate, Date endDate, int field) {
	        super(startDate, earliestDate, endDate, field);
	        this.earliestDate = earliestDate;
	        this.endDate = endDate;
	        this.field = field;
	    } // FINE COSTRUTTORE
	} // FINE PRIVATE CLASS
	public SpinnerOrario() {
		GregorianCalendar calendar = new GregorianCalendar();
	    calendar.setTime(new Date(0));
	    calendar.set(Calendar.HOUR_OF_DAY, 0);
	    calendar.set(Calendar.MINUTE, 0);        
	    Date earliestDate = calendar.getTime();
	    
	    calendar.set(Calendar.HOUR_OF_DAY, 24);
	    calendar.set(Calendar.MINUTE, 0);
	    Date latestDate = calendar.getTime();
	    
	    calendar.set(Calendar.HOUR_OF_DAY, 7);
	    calendar.set(Calendar.MINUTE, 0);
	    Date startDate = calendar.getTime();        
	    	    
	    setModel(new MySpinnerDateModel(startDate, earliestDate, latestDate, Calendar.MINUTE));
	    setEditor(new JSpinner.DateEditor(this, "HH:mm"));	    
	} // FINE COSTRUTTORE
} // FINE CLASSE
 
Così da creare i miei JSpinner per l'orario in altre Classi....
	codice:
	JSpinner orarioStart = new SpinnerOrario();
getFormat(orarioStart,4); // JSpinner, colonne	
orarioStart.addChangeListener(new ActionSpinner());
 
Pensavo di inserire un parametro per variare in base alle esigenze lo step dell'orario,
o altri parametri per variare i valori min, max e iniziale,
comunque, come sempre, il codice funziona alla grande.
Devo studiarmi il puntatore super,
non ho capito bene gli usi.
PS: Eclipse mi ha "suggerito" di cancellare questa riga:
	codice:
	this.startDate = startDate;
 
Sempre gentilissimo, grazie