|
New 2 Java: Construir una Aplicación: 1.- Objetos de una Aplicación |
Crear Sitio para las Clases
¿Qué sucede si no hemos creado todavía las clases que hemos llamado Welcome, Diver, Dives, etc.?
Obtendremos un error de compilación si el compilador no puede encontrar alguna clase a la que se llama desde el código. Para evitar este tipo de error, creamos clases que puedan ser ejemplarizadas. Por ahora, no necesitan hacer nada más que existir en la memoria.
Crear Sitio para las Clases
Las clases individuales inicializadas con cada tab se cubrirán en las próximas secciones del titurial de Dive Log. La clases Welcome es la siguiente que cubriremos en más detalle.
Mientras tanto, simplemente, para poder compilar la clase DiveLog, creamos clases vacías que no hacen nada excepto inicializar espacio. Por ahora, estas clases sólo consisten en las sentencias package e import, la cabecera de la clase, y los corchetes de apertura y de cierre. Cada clase se graba en su propio fichero.
| Sigue estos pasos... |
|---|
|
Según vayamos trabajando a lo largo del tutorial, iremos abriendo estos ficheros y los rellenaremos cuando se cubra cada clase.
Crear Objetos GUI Adicionales
Después de que el constructor DiveLog llame a populateTabbedPane, el flujo del programa retorna al constructor. Luego necesitamos crear un objeto menú. Como con los tabs, crear y rellenar los objetos para crear el menú se hace dentro de un método. Usando las convenciones de nombrado tipicas, este método se llama buildMenu.
Este método es private para evitar que otros paquetes y clases accedan a él, y es void porque su único propósito es construir un menú y un ítem de menú llamado Exit, y para salir limpiamente cuando se seleccione este ítem. El nombre sugiere lo que hace este método, y los paréntesis están vacíos porque no se requieren parámetros.
El paso 3 muestra cómo crear menús de aplicación usando las clases JMenuBar, JMenu, y JMenuItem. Ejemplarizamos un nuevo JMenuBar y lo asignamos a mb. Luego, ejemplarizamos un objeto JMenu con la variable menu, y le pasamos en el String "File" para nombrar un nuevo menú, Por último, ejemplarizamos un objeto ítem de menú, incluyendo el parámetro "Exit" y asignándolo a item.
| Sigue estos pasos... |
|---|
|
Después de llamar a buildMenu desde el constructor DiveLog, el código completa la construcción del objeto DiveLog. Después el código necesita obtener el panel de contenido y añadirle el objeto tabbedPane. El marco que hemos creado para la aplicación es un contenedor, y en este caso es el contenedor del más alto nivel. Todos los contenedores Swing tienen otro contenedor dentro, que es el panel de contenido, donde situamos los contenedores hijos y los componentes.
| Sigue estos pasos... |
|---|
|
Aunque esto podría parecer que lo que hemos hecho antes con los objetos creados los ha añadido al objeto frame, no es así. En vez de eso, los objetos se han añadido al contenedor de un frame, el panel de contenido.
Añadir Objetos a un Frame
El panel de contenido maneja el interior de un frame Swing, y los componentes se añaden al panel de contenido del frame en vez de añadirse directamente al frame. Para hacer esto, simplemente enviamos un mensaje al objeto dlframe con el operador punto, llamando al método getContentPane y llamando al método add para añadir el objeto tabbedPane al panel de contenido. No queremos añadir nada más al panel de contenido, ya que las clases tabs ejemplarizadas serán añadida durante la creacción de los tabs, que a su vez serán añadidos al objeto tabbedPane.
El método pack hace que la ventana sea redimensionada para ajustarse al tamaño preferido de sus subcomponentes, y el método setSize selecciona el tamaño de un frame. Incluso con el tamaño y el color establecidos, no veremos nada si no seleccionamos el componente JFrame como visible. Podría parecer anodino, hacer esto, pero algunas veces necesitaremos ocultar componentes. Por ejemplo, cuando un usuario haya introducido información en un área de texto, ocultamos el componente área, que ya no se necesita más, y mostramos el texto sobre la pantalla, o proprocionamos otro componente diferente.
Este JFrame para Dive Log debería ser visible todo el tiempo. Esto se hace llamando a setVisible con true de esta forma:
dlframe.setVisible(true);
Para ocultar un componente, cambiamos true por false.
| Sigue estos pasos... |
|---|
El código se debería parecer a este. |
El constructor DiveLog está terminado y define cómo se mostrarán y comportarán los objetos de DiveLog cuando sea inicializado:
- El marco tiene un tamaño, un color de fondo y es visible.
- El panel de contenido contiene un objeto tabbedPane.
- El objeto tabbedPane contiene etiquetas con títulos, strings de ayudas, e inicializa las clases independientes que contienen los detalles de cada página (por ahora están vacías).
Con las instrucciones sobre cómo se escribe el objeto DiveLog dentro del constructor, sólo queda un método:
public static void main(String[] args)
{
DiveLog dl = new DiveLog();
}
| ¿Para qué propósito sirve un método main? |
|---|
















































