Herramientas de usuario

Herramientas del sitio


bloque4:organizargui

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:organizargui [12/05/2018 09:08] – [Asociar nuestra ventana con nuestra aplicación] Fernando Valdeónbloque4:organizargui [16/09/2024 20:53] (actual) – editor externo 127.0.0.1
Línea 12: Línea 12:
  
 Para organizar las clases que creemos con WindowBuilder, debemos hacer 2 cosas:  Para organizar las clases que creemos con WindowBuilder, debemos hacer 2 cosas: 
-  - organizar el constructor en un par de métodos+  - organizar el código generado en el constructor en un par de métodos
   - eliminar el método main de esta clase   - eliminar el método main de esta clase
  
Línea 24: Línea 24:
 {{ :bloque4:organizarcodigo2.png?450 |}} {{ :bloque4:organizarcodigo2.png?450 |}}
  
-La finalidad de estos dos métodos es simplemente organizativa, y pueden nombrarse con cualquier otro identificador que creamos oportuno (initComponents, initHandlers, etc)+La finalidad de estos dos métodos es simplemente organizativa, y pueden nombrarse con cualquier otro identificador que creamos oportuno (initComponents, initHandlers, etc).
  
 **Estos dos métodos serán llamados por el constructor de la clase.** **Estos dos métodos serán llamados por el constructor de la clase.**
  
 ==== 2 - Eliminar el método main ==== ==== 2 - Eliminar el método main ====
-El método main generado por WindowBuilder usa hilos de ejecucióny no queremos usarlo. La ventana será creada desde un método main en otra clase, como por ejemplo:+El método main generado por WindowBuilder usa hilos de ejecución y no queremos usarlo; por lo tanto los borraremos**La ventana será creada desde un método main en otra clase**, como por ejemplo:
  
 <code java> <code java>
Línea 49: Línea 49:
 En la siguiente imagen hemos incluido un JButton (botón) y un JTextField (campo de texto). Si en el editor de WindowBuilder pulsamos con el botón derecho sobre el botón se nos desplegará el menu que vemos en la imagen.  En la siguiente imagen hemos incluido un JButton (botón) y un JTextField (campo de texto). Si en el editor de WindowBuilder pulsamos con el botón derecho sobre el botón se nos desplegará el menu que vemos en la imagen. 
  
-La mayor parte de las acciones que realizaremos sobre un elemento gráfico pueden responder al evento ActionPerformed, asi que con pulsar sobre dicho evento nos bastará. +La mayor parte de las acciones que realizaremos sobre un elemento gráfico pueden responder al evento ''ActionPerformed''así que con pulsar sobre dicho evento nos bastará. 
 {{ :bloque4:addeventhandler.png?400 |}} {{ :bloque4:addeventhandler.png?400 |}}
  
-En ese momento WindowBuilder nos habrá generado algo más de código en el método iniciarComponentes():+En ese momento WindowBuilder nos habrá generado algo más de código en el método ''iniciarComponentes()'':
  
 {{ :bloque4:addeventhandlercode.png?350 |}} {{ :bloque4:addeventhandlercode.png?350 |}}
  
-El código relativo a nuestros componentes se crea dentro del método ''iniciarComponentes()''. Los manejadores de eventos se crean justo debajo del elemento (botón en este caso) que los necesita, también dentro de ese método.+El código relativo a nuestros componentes se crea ahora dentro del método ''iniciarComponentes()''. Los manejadores de eventos se crean justo debajo del elemento (botón en este caso) que los necesita, también dentro de ese método.
  
-Si queremos organizar nuestro código de la forma mas clara posible debemos mover este código dentro del método que hemos creado para tal fin: +Si queremos organizar nuestro código de forma más clara debemos mover este código dentro del método que hemos creado para tal fin: 
  
 {{:bloque4:addeventhandlercode2.png?400 |}} {{:bloque4:addeventhandlercode2.png?400 |}}
 Además hemos incluido el código referente para mostrar un saludo en el campo de texto (variable textField). Además hemos incluido el código referente para mostrar un saludo en el campo de texto (variable textField).
  
-Si nos fijamos, la variable btnSaludar, está subrayada en rojo, debido a que hay un error. +Si nos fijamos, la variable **btnSaludar**, está subrayada en rojo, debido a que el compilador detecta un error. 
  
 Esto se debe a que la variable btnSaludar, no está creada (no existe) dentro del método iniciarManejadoresEventos(). Esto se debe a que la variable btnSaludar, no está creada (no existe) dentro del método iniciarManejadoresEventos().
  
-Dicha variable se ha creado en el método iniciarComponentes(), por lo que es una variable local de ese método, y solo puede ser accedida desde dicho método.+Dicha variable se ha creado en el método iniciarComponentes(), por lo que es una variable local ese método, y solo puede ser accedida (existe) desde dicho método.
  
 En el siguiente punto vamos a tratar el ámbito de las variables de una ventana. En el siguiente punto vamos a tratar el ámbito de las variables de una ventana.
Línea 73: Línea 73:
 ==== Ámbito de las variables de componentes ==== ==== Ámbito de las variables de componentes ====
 {{ :bloque4:localtofield.png?200|}} {{ :bloque4:localtofield.png?200|}}
-Debido a la organización de nuestro código en métodos, debemos tener en cuenta que muchas variables que crea WindowBuilder son locales al método y no serán visibles desde ningún otro a no ser que cambiemos su ámbito.+Debido a la organización de nuestro código en métodos, debemos tener en cuenta que muchas variables que crea WindowBuilder son locales (su ámbito es el método en el que se crean) y no serán visibles desde ningún otro método a no ser que cambiemos su ámbito.
  
 Desde la vista "Design" de WindowBuilder tenemos una sección para las propiedades de cualquier elemento gráfico: Desde la vista "Design" de WindowBuilder tenemos una sección para las propiedades de cualquier elemento gráfico:
Línea 103: Línea 103:
 ===== Asociar nuestra ventana con nuestra aplicación ===== ===== Asociar nuestra ventana con nuestra aplicación =====
 Como hemos ido programando hasta ahora, hemos trabajado unicamente con la consola para la entrada/salida de datos usando dos flujos: Como hemos ido programando hasta ahora, hemos trabajado unicamente con la consola para la entrada/salida de datos usando dos flujos:
-  - Entrada estándar: ''System.in'' +  - Entrada estándar: ''System.in'' (usada por método println()) 
-  - Salida estándar: ''System.out''+  - Salida estándar: ''System.out'' (usada por constructor de Scanner())
 Esos flujos ya no serán usados ya que ahora nos comunicaremos con el usuario a través de la interfaz gráfica ''GUI'' y sus componentes. Esos flujos ya no serán usados ya que ahora nos comunicaremos con el usuario a través de la interfaz gráfica ''GUI'' y sus componentes.
  
-__La forma más fácil de asociar mi ventana con mi programa es crear una instancia de mi programa en mi clase Ventana__:+__La forma más fácil de asociar mi ventana con mi programa es crear una instancia de mi programa en mi clase Ventana__.
  
 **Ejemplo**: Clase ''GestorEmpleados'', con los métodos para dar de alta empleados, buscarlos, eliminarlos, etc. Es acoplada a la clase Ventana. **Ejemplo**: Clase ''GestorEmpleados'', con los métodos para dar de alta empleados, buscarlos, eliminarlos, etc. Es acoplada a la clase Ventana.
Línea 128: Línea 128:
       initEventHandlers();       initEventHandlers();
              
-      //Instancio la ferencia a mi aplicación +      //Instancio la referencia a mi aplicación 
       gestor = new GestorEmpleados();       gestor = new GestorEmpleados();
    }    }
        
    /*    /*
-     Código generado por cada manejador de eventos+     Método que incluye cada manejador de eventos
    */    */
    private void initEventHandlers(){    private void initEventHandlers(){
bloque4/organizargui.1526116127.txt.gz · Última modificación: 16/09/2024 20:53 (editor externo)