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