|
Buscador
Secciones
Otras zonas
Foros
Ganamos
Registro
|
Inicio > Tutoriales > Lenguajes orientados a objeto > Nuevo en Java > New 2 Java: Construir una Aplicación: 5.- Escribir Objetos a Ficheros, Usar Arrays y más...
|
| Sigue estos pasos... |
|---|
public class Dives extends JPanel
{ // Opens class
public Dives()
{// Opens constructor
// Sets the layout for the page and the
// background to white.
setLayout(new BorderLayout());
setBackground(Color.white);
// Initializes the placeholder classes.
NorthPanel northPanel = new NorthPanel();
//CenterPanel centerPanel = new CenterPanel();
//NorthPanel northPanel = new NorthPanel();
DiveHandler ui = new DiveHandler();
// Adds class objects to panel regions.
add("North", northPanel);
add("West", ui);
//add("Center", centerPanel);
} // Closes constructor
Nota:
|

Separar el Interface de la ImplementaciónHasta ahora hemos construido cada panel desde una sola clase definida por el usuario. Estas clases incluían el código tanto para los componentes GUI, los datos y las funcionalidades del panel. Una forma mejor del diseño de software implica la arquitectura Modelo, Vista, Controlador (MVC).
La idea que hay detrás de MVC es separar los componentes gráficos (o vista) de los datos (o modelo), y utilizar un controlador para tratar con la interacción del usuario y modificar el modelo o la vista de la forma apropiada.
Por supuesto, algunas aplicaciones son demasiado pequeñas o tienen muy poca funcionalidad, por lo que no merece la pena utilizar MVC. Pero para este panel, MVC nos irá muy bien.

Diseñar el objetoAhora que ya hemos realizado los cambios necesarios en las dos clases creadas anteriormente, estámos listos para diseñar un nuevo objeto dive. Este es el plano de lo que consiste un objeto dive. También nos dice que tipo de características GUI necesitaremos para recolectar información sobre el buceador, porque cada objeto dive sólo consta de datos de inmersiones.
Para decidir que datos necesitamos pasar al constructor de la clase DiveRecord, determinamos la información más común que los buceadores proporcionan sobre cada sesión de buceo, y anotamos de que tipo de dato se trata, de esta forma:
A cada dato anterior se la asignado un tipo de dato, como un String o un int, y también se le ha asignado un identificador. El objeto dive se construirá en el momento en que el buceador introduzca toda la información.
Entonces esta clase necesita incluir lo siguiente:
Esto es todo. Las instrucciones para lo que se debería hacer con esta información van en la clase del controlador que construiremos al final.
Esta clase DiveRecord proporciona un constructor para los datos que está recolectando, y métodos para trabajar con esos datos. Como vamos a escribir este objeto en un fichero usando serialización, esta clase necesita implementar el interface Serializable.
Serialiación de ObjetosUsualmente los objetos existen mientras el programa que los creó está activo y ejecutándose. La habilidad de un objeto para grabar, o registrar su estado para que pueda ser reproducido en la misma o en otra aplicación es la persistencia. Un objeto puede persistir grabando los valores que describen su estado en un fichero. Por ejemplo, digamos que tenemos una clase Coche con la que los usuarios pueden crear sus propios objetos Coche atendiendo a sus necesidades. La persistencia permitiría que cada ejemplar de Coche pudiera grabar su fabricante, modelo, color, etc y registrar el estado de cada Coche para utilizarlo más tarde.
Podemos grabar el estado de un objeto a través de su serialización, que su representación en una serie ordenada de bytes. Si esa información de estado es otro objeto, también se graban las selecciones actuales para ese objeto, etc., hasta que todos sean tipos de datos primitivos. Los métodos y las variables de estado static no se graban. Los métodos son el comportamiento de un objeto, no el estado, y por eso no se graban. Las variables estáticas, son información sobre la clase, no del ejemplar y tampoco se graban.
La serialiación es ideal para grabar los datos de la inmersión porque sólo necesitamos los datos grabados. Un DiveRecord es simplemente un objeto con esos datos.
Si una clase implementa el interface java.io.Serializable, es serializable. No hay métodos en este interface por eso sólo sirve como un marcador. Sin embargo, simplemente implementar el interface no es suficiente. Las variables de ejemplar de esa clase también debe ser serializables; si no es así, cuando intentemos serializar el estado, se lanzará un excepción.
Más adelante veremos los métodos que escriben y leen el objeto hacia y desde un fichero. Por ahora, sólo debemos asegurarnos de que nuestra clase DiveRecord implemente el interface Serializable.
| Sigue estos pasos... |
|---|
Tu nueva clase debería parecerse a esta |
|
Nota:
Observa la palabra clave this usada en el constructor. Los nombres de argumentos ocultan los nombres de las variables miembro. Por eso los identificadores dentro del cuerpo del constructor se refieren a los argumentos no a las variables miembro. Para acceder a las variables miembro, debemos referenciarlas a través de this, el objeto actual. Típicamente, dentro del cuerpo de un método, podemos referenciar directamente las variables miembro del objeto. Sin embargo, algunas veces necesitamos distinguir el indentificador de la variable miembro si uno de los argumentos del método tiene el mismo nombre que la variable miembro. Esto simplemente se hace utilizando la palabra clave this. |
Esto completa el modelo de nuestro objeto. Ahora que hemos completado el modelo, necesitamos crear los componentes GUI que el usuario necesita para introducir los datos.
Construir los componentes GUIEl panel Logs Dives contiene un área de texto para los comentarios de las inmersiones y otros componentes gráficos de entrada como con menú desplegable para elegir el nivel de profundidad, dos botones de radio para elegir entre las inmersiones desde bote o desde la playa, y los campos de texto familiares para registrar la fecha, el tiempo de inmersión, la visibilidad y una etiqueta que se rellena por un métoco que crearemos para que rellene automáticamente el número de inmersión. Si, por ejemplo, estámos construyendo, un diario de ejercicios, podemos cambiar estas características para grabar las calorías quemadas, los ejercicios aeróbicos y anaeróbicos, etc. Puedes cambiar estas características para que se adapten a tu aplicación.
Más delante, crearemos una clase UIWestPanel para definir los componentes GUI para que un buceador introduzca los datos de sus inmersiones.
| Lee el API de la clase JComboBox. ¿Qué línea de código es la correcta para hacer que el combobox sea editable? |
|---|
| Leer comentarios (27) | |
| Escribir comentario | |
| Puntuación: |
|
| Votar | |
| Recomendar este tutorial | |
| Estadísticas |
Copyright © 1999-2007
Programación en castellano.
Todos los derechos reservados.
Formulario de Contacto -
Datos legales -
Publicidad
Mantenida por: Claudio y
Dani.
Hospedaje web y servidores dedicados linux por Ferca Network
red internet: jugar gratis | amor | navidad 2009 | registro de dominios |
servidores dedicados
más internet: comprar | gratis | posicionamiento en buscadores | decoración libre | gifs animados