Herramientas de usuario

Herramientas del sitio


bloque4:mvc

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
bloque4:mvc [13/04/2018 10:21] – [Controlador] Fernando Valdeónbloque4:mvc [16/09/2024 20:53] (actual) – editor externo 127.0.0.1
Línea 9: Línea 9:
   * El **controlador** es la capa que comunica a las otras dos. Al llamar a su constructor, se le pasar como parámetro una instancia de la vista, y otra del modelo. El controlador es quien tiene implementados los manejadores de eventos y se los añade a los componentes de la vista indicados, y también es quien ejecuta las operaciones del modelo en respuesta a esos eventos.    * El **controlador** es la capa que comunica a las otras dos. Al llamar a su constructor, se le pasar como parámetro una instancia de la vista, y otra del modelo. El controlador es quien tiene implementados los manejadores de eventos y se los añade a los componentes de la vista indicados, y también es quien ejecuta las operaciones del modelo en respuesta a esos eventos. 
  
-Resulta aconsejable que al menos las clases que representan el modelo, la vista y el controlador estén dentro del mismo paquete (''package''). +Resulta aconsejable que al menos las clases que representan el modelo, la vista y el controlador **estén dentro del mismo paquete** (''package''). 
  
 ===== Vista ===== ===== Vista =====
Línea 106: Línea 106:
 </code> </code>
  
-==== Implementando interfaces de Listeners ====+==== Controlador implementando interfaces ====
 Otra forma mucho más elegante de implementar la clase Controlador es haciendo que trabaje como **Listener** de ciertos tipos de eventos. Para eso haremos que la clase implemente las distintas ''interfaces'' de cada tipo de evento. En el caso siguiente implementamos la interfaz ''ActionListener'', que ofrece soporte para los eventos de tipo ''ActionEvent''. Otra forma mucho más elegante de implementar la clase Controlador es haciendo que trabaje como **Listener** de ciertos tipos de eventos. Para eso haremos que la clase implemente las distintas ''interfaces'' de cada tipo de evento. En el caso siguiente implementamos la interfaz ''ActionListener'', que ofrece soporte para los eventos de tipo ''ActionEvent''.
  
 <code java> <code java>
-public class Controlador{+public class Controlador implements ActionListener{
     private Vista vista;     private Vista vista;
     private Modelo modelo;     private Modelo modelo;
Línea 119: Línea 119:
         this.modelo = modelo;         this.modelo = modelo;
                  
-        addListeners(); +        asociarListeners(this);
-        +
     }     }
          
-    public void addListeners(){ +    //Metodo que asocia esta clase como listener de los botones 
-       +    public void asociarListeners(ActionListener listener){ 
 +       vista.botonNuevo.addActionListener(listener); 
 +       vista.botonEliminar.addActionListener(listener);
     }     }
          
 +    //Metodo que la interface ActionListener obliga a implementar
 +    //Es el encargado de gestionar los eventos ActionEvent de los botones
     @Override     @Override
     public void actionPerformed(ActionEvent evt) {     public void actionPerformed(ActionEvent evt) {
-        ..+       String comando = evt.getActionCommand(); 
-        //Código que quiero que ocurra al pulsar el botón de aceptar   +        
 +       switch(comando){ 
 +          case "nuevo": 
 +             //codigo para el boton nuevo 
 +             break; 
 +          case "eliminar": 
 +             //codigo para el boton eliminar 
 +             break; 
 +              
 +          ... 
 +       }
     }     }
          
bloque4/mvc.1523614885.txt.gz · Última modificación: 16/09/2024 20:53 (editor externo)