CLASES INTERNAS ANÓNIMAS
Cuando en un constructor utilizamos una instancia de clase,
JSpinner JS_pinner=new JSpinner(new
SpinnerNumberModel(20,0,100,10));
 Podemos en lugar de eso
crear la clase entera dentro:
JSpinner JS_pinner=new JSpinner(new
SpinnerNumberModel(20,0,100,10){ rehacemos los métodos………….});
Imaginemos que nos encontramos en el caso tener creado un JSpinner y decidimos modificar los pulsadores de las
flechitas, el de arriba decrecerá en lúgar de aumentar y viceversa.
Como siempre:
class Lamina extends JPanel{
       public Lamina() {
             JP_Spinner = new JPanel();
JS_pinner=new JSpinner(new Modifica_flecahas());
             //damos
tamaño al Spiner
             JS_pinner.setPreferredSize(new Dimension(200,50));
       JS_pinner.setFont(new Font("Arial Black",Font.CENTER_BASELINE,20));
             JP_Spinner.add(JS_pinner);
             add(JP_Spinner);    
       }
       //ahora
crearemos una clase interna para modificar
los métodos 
       private class Modifica_flecahas extends SpinnerNumberModel{
             public Modifica_flecahas() {
                    super(20,0,100,10);
             }
             //ahora
sobreescribimos los métodos
             public Object getNextValue() {
                    //le decimos que en lugar del
siguiente. regrese el previo
                    return super.getPreviousValue();
             }
             public Object getPreviousValue() {
                    //le decimos que en lugar del
siguiente. regrese el previo
                    return super.getNextValue();
             }            
       }
       JSpinner JS_pinner;
       JPanel JP_Spinner;
}
Con una clase interna anónima sería así, en lugar de crear
una clase interna y llamarla en el constructor de JSpinner, lo hacemos todo
dentro de la llamada:
class Lamina extends JPanel{
       public Lamina() {
             JP_Spinner = new JPanel();
       JSpinner JS_pinner=new JSpinner(new SpinnerNumberModel(20,0,100,10) {
                    //REESCRIBIMOA Los Métodos 
public Object getNextValue() {
                    //le decimos que en lugar del
siguiente. Regrese el previo
                           return super.getPreviousValue();
                    }
                    public Object getPreviousValue() {
                    //le decimos que en lugar del
siguiente. Regrese el previo
                           return super.getNextValue();
                    }
             });
             //damos
tamaño al Spiner
             JS_pinner.setPreferredSize(new Dimension(200,50));
       JS_pinner.setFont(new Font("Arial Black",Font.CENTER_BASELINE,20));
             JP_Spinner.add(JS_pinner);
             add(JP_Spinner);
       }
       JSpinner JS_pinner;
       JPanel JP_Spinner;
}
			
			
			
			
No hay comentarios:
Publicar un comentario