�C�mo deber�amos construir los cuatro paneles a a�adir al panel Diver Data?
Podemos crear clases separadas e inicializarlos en el constructor de cada clase, o podemos definir m�todos para construir los paneles dentro de esta clase y llamar a estos m�todos desde dentro del constructor de la clase.
Para el panel Diver Data, definimos m�todos para construir los cuatro paneles. M�s adelante veremos como crear nuevas clases para varias secciones de un panel.
�Terminaci�n del Constructor
Hicimos mucho trabajo dentro del constructor, pero no est� terminado todav�a. El plan del constructor era:
- Seleccionar la distribuci�n y el color de fondo.
- Inicializar cada objeto pr�viamente declarado.
- Llamar a los m�todos para crear cada panel.
- A�adir cada panel construido a las regiones del borderLayout del panel Diver.
Los pasos uno y dos est�n terminados. Ahora empezaremos el paso tres, llamar a los m�todos para crear cada panel.
Las convenciones de nombrado recomiendan que los nombres de m�todo empiecen con un verbo que describa lo que hace el m�todo. En este caso, los m�todos a los que est�mos llamando en el constructor crean paneles para contener objetos. Por eso tiene sentido empezar sus nombres con build. De echo, los nombres de m�todo pueden especificar qu� panel construye cada m�todo. Por ejemplo, buildImagePanel crea el panel que muestra la imagen de los caballitos de mar.
Para llamar a los m�todos dentro del constructor, simplemente los nombramos y proporcionamos par�ntesis vac�os (). Algunos m�todos requieren que vayan par�metros dentro de los par�ntesis, pero estos m�todos particulares no requieren que se les pase ninguna informaci�n adicional.
Sigue estos pasos... |
---|
|
De arriba hacia abajo, el constructor crea cada objeto, llama a los m�todos que crean los paneles, y a�ade esos objetos a cada panel. El paso final es completar el constructor tray�ndo de nuevo el objeto panel Diver. A�adimos los paneles a las regiones del boderLayout del objeto Diver.
Como podr�as recordar de la adicci�n de objetos al panel Welcome, para a�adir los objetos paneles a las regiones de distribuci�n del panel Diver:
- Llamamos al m�todo add.
- Suministramos la siguiente lista de par�metros.
- Nombre de la variable del objeto a a�adir.
- Nombre de la clase de distribuci�n.
- Constantes de posici�n.
Para obtener una lista de las variables panel que seleccionamos previamente, miramos en la parte superior de la clase, o en el diagrama preliminar que hicimos.
Sigue estos pasos... |
---|
Nuestro constructor se deber�a parecer a este ejemplo. |
�Ejemplares de Clases
Si compilamos la clase Diver en este momento, obtendremos errores. Aunque hemos llamado a los m�todos para construir los paneles, no los hemos definido. Con los cuatro pasos del constructor completados, nos vamos fuera del constructor para definir los m�todos necesarios para construir los paneles. Como hemos llamado a cuatro m�todos, debemos definir los siguientes cuatro m�todos:
- buildImagePanel
- buildAddressPanel
- buildEmergencyPanel
- buildTrainingPanel
Como la clase Diver extiende JPanel, es un panel y lo hemos configurado para usar el controlador de distribuci�n BorderLayout. Construyendo paneles con sus propios controladores de distribuci�n, podemos a�adir muchos m�s objetos al panel Diver Data, construido desde la clase Diver.
Aunque cada panel no se crea en su propia clase sino en su propio m�todo, no podemos usar la herencia a trav�s de la palabra clave extends. Sin embargo, podemos crear un objeto panel creando un ejemplar de la clase JPanel. Una vez que tengamos un objeto panel, seleccionamos su distribuci�n, y los objetos que queramos.
Primero empezamos la definici�n del m�todo con un atributo de acceso, el tipo de m�todo, y el nombre del m�todo, seguido por los par�ntesis vac�os:
private void buildImagePanel()
C�mo s�lo est� clase ncesita acceder a este m�todo, podemos declararlo como private. El tipo del m�todo es void porque no devuelve ning�n valor. En vez de eso, simplemente construye unos cuantos objetos GUI. Usando las convenciones de nombrado para el lenguaje de programaci�n Java, este m�todo se llama buildImagePanel para describir claramente lo que hace el m�todo. Esto nos ayuda a nosotros, as� como a otros desarrolladores, mirando al c�digo podemos entender lo que hace con s�lo un vistazo.
Al principio de esta clase declaramos una variable llamada images del tipo JPanel. Ahora asignamos esta variable a un ejemplar de la clase JPanel usando la palabra clave new para crear un nuevo objeto JPanel:
images = new JPanel();
Como hemos creado un ejemplar de la clase JPanel, tenemos acceso a los m�todos que JPanel hereda, incluyendo el m�todo setLayout de la clase Container y el m�todo setBackground de la clase Component. Seleccionamos el color de fondo y la distribuci�n de este ejemplar del objeto JPanel.
C�mo s�lo se a�ade una imagen a este panel, un simple controlador de distribuci�n como FlowLayout es suficiente. Seleccionamos esta distribuci�n de forma similar a como lo hicimos en los paneles Welcome y Diver llamando al m�todo setLayout, pero esta vez tambi�n nombramos el objeto que necesita el controlador de distribuci�n usando el operador punto. Luego inicializamos la clase apropiada para la distribuci�n que queremos en la lista de par�metros del m�todo:
images.setLayout(new FlowLayout);
Hemos creado un objeto panel que usa un ejemplar de la clase FlowLayout como controlador de distribuci�n. Luego, seleccionamos el color de fondo como lo hicimos en el otro panel, pero est� vez debemos nombrar el objeto panel y el operador punto:
images.setBackground(Color.white);
El color de fondo del panel images ahora es blanco.
�Por qu� no hemos creado un ejemplar de la clase Color usando la palabra clave new en el m�todo setBackground como lo hicimos en el m�todo setLayout? |
---|