New 2 Java: Construir una Aplicación: 1.- Objetos de una Aplicación

�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...
  1. Abre tu editor de texto.
  2. Teclea, o copia y pega la siguiente clase, en un nuevo fichero:
    package divelog;
    
    /**
     * This class creates the content on the
     * Welcome tabbed pane in the Dive Log
     * application.
     * @version 1.0
    */
    //import for buttons, labels, and images
    import javax.swing.*; 
    //import for layout manager
    import java.awt.*; 
    
    public class Welcome extends JPanel
    { //Opens class 
    
    
      }//Closes class 
    
  3. Graba este fichero como Welcome.java en el directorio divelog.
  4. Crea clases como Welcome pero con los titulos Diver.java, Dives.java, Statistics.java, WebSite.java, y Resources.java.

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...
  1. Abre el fichero DiveLog.java.
  2. Teclea, o copia y pega las siguientes l�neas de c�digo despu�s del corchete de cierre del constructor:
    // Method header
    private void buildMenu()
      {
      // Instantiates JMenuBar, JMenu,
      // and JMenuItem.
         JMenuBar mb = new JMenuBar();
         JMenu menu = new JMenu("File");
         JMenuItem item = new JMenuItem("Exit");
    

    Nota: Para hacer que el men� sea funcional se ha asignado un addActionListener al JMenuItem. Los conceptos sobre ActionListener son un poco avanzados y los explicaremos en m�s detalle en otra parte del tutorial.

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...
  1. Abre el fichero DiveLog.java.
  2. Teclea, o copia y pega las siguientes l�neas de c�digo:
         //Closes the application from the Exit 
         //menu item.
         item.addActionListener(new ActionListener()
        {
    public void actionPerformed(ActionEvent e)
    {
       System.exit(0);
     }
      
       });// Ends buildMenu method
    

    Sit�a los objetos men�, juntos usando el m�todo predefinido, add, pas�ndolos en la variable de referencia.

  3. Y el siguiente:
    //Adds the item to the menu object
    menu.add(item);
    //Adds the menu object with item
    //onto the menu bar
    mb.add(menu); 
    //Sets the menu bar in the frame
    dlframe.setJMenuBar(mb);
    
  4. Graba el fichero.

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...
  1. Abre el fichero DiveLog.java.
  2. Teclea, o copia y pega las siguientes l�neas de c�digo antes del corchete } de cierre del constructor:
    dlframe.getContentPane().add(tabbedPane);
    dlframe.pack();
    dlframe.setSize(765, 690);
    dlframe.setBackground(Color.white);
    dlframe.setVisible(true);
    

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?
   A. Sirve como un punto de entrada para una aplicaci�n.

   B.  Inicializa objetos importantes requeridos para construir una aplicaci�n

   C.  Todas las de arriba.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP