Programación en castellano
Inicio > Tutoriales > Nuevo en Java > New 2 Java: Construir una Aplicación: 1.- Objetos de una Aplicación
-Tutoriales

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


Constructores

¿Qué constuctor está escrito incorrectamente?

Ambos public Button(){} y public Button("Edit"){} son correctos. Los constructores pueden escribirse con paréntesis vacíos (), o pueden requerir parámetros, como en el caso B, un constructor Button que toma un parámetro String. De hecho, una clase puede tener varios constructores, lo que se conoce como constructores sobrecargados.

. Detalles de Constructores

Muchas clases de la librería Java tienen un constructor. Para crear un objeto de esas clases en nuestras propias clases, para la mayoría de ellas, llamamos al constructor de la clase.

Por ejemplo, si queremos crear un boton para nuestra aplicación, la librería Java tiene una clase predefinida Button que podemos usar. Un vistazo a la documentación de Button nos muestra que esta clase tiene dos posibles constructores a los que podemos llamar:

  • Button()
    Crea un botón sin etiqueta
  • Button(String label)
    Crea un botón con una etiqueta de texto

Tener más de un constructor es lo que conocemos como constructores sobrecargados. Cada constructor debe tener el mismo nombre de la clase que define, pero puede haber tantos constructores como sean necesarios. La diferencia está en la lista de parámetros definida entre los paréntesis (). El compilador sabe a qué constructor estamos llamando simplemente por el tipo de información que le proporcionamos.

En este caso, si proporcionamos un String como parámetro llamando al constructor como en Button("Edit"), el compilador sabe que estámos llamando al segundo constructor.

Un constructor puede requerir diferentes tipos en la lista de parámetros, pero debemos ponerlos en el orden en que queramos que sean añadidos.

Por ejemplo:

Customer(String name, String address, int age) 

Ejemplariza un objeto Customer llamando al constructor de la clase Customer con la palabra clave new:

Customer cust1 = new Customer("Jane Smith", "555 Street", 30);

Customer define la variable referencia, y la variable se llama cust1. Un Customer se construye llamando al constructor de la clase Customer con la palabra clave new.

En otras palabras, el constructor construye un objeto exactamente en la forma que queremos. En este caso, crea un objeto Customer con información personal.

Antes de arrancar una aplicación, deben aparecer ciertos componentes GUI para que el usuario pueda utilizar la aplicación. Este concepto podría parecer que dice que toda la aplicación debe escribirse dentro del constructor, pero no es así.

El constructor de DiveLog define sólo unos pocos componentes GUI, y puede que algunas de estas definiciones de clases llamen a otras clases. De otro modo, la clase principal, se convertiría en algo enorme e inmanejable. También, en la programación orientada a objetos, el objetivo es construir objetos que trabajen con otros objetos para hacer sencillo el añadir o eliminar componentes sin tener que modificar cantidad de código.

Cuando se escriben constructores, sólo debemos incluir los elementos del objeto que necesitan ser inicializados.

Veremos estos conceptos según vayamos trabajando en la construcción de esta aplicación Dive Log.

La imagen de abajo nos enseña los objetos que se crean dentro del constructor DiveLog:


Objetos creados desde el constructor DiveLog

El constructor de la clase DiveLog empieza así:

public DiveLog()
  { // Opens constructor

   // Creates a frame object to add to 
   // the application GUI components.

   dlframe = new JFrame("A Java(TM) Technology Dive Log");

Observa que este constructor tiene el mismo nombre que la propia clase y que no requiere ningún parámetro, como muestra (). El corchete abierto { inicia el cuerpo del constructor.

Recordamos que al principio de DiveLog.java, declaramos la variable dlframe, pero no le asignamos ningún valor. Ahora, dentro del constructor, el constructor de JFrame es asignado a la variable dlframe. Un JFrame es simplemente una clase predefinida de Java que construye un marco con un borde, un botón de minimizar y maximizar y una caja de cierre. Un JFrame es un contenedor Swing que puede contener otros contenedores o componentes DiveLog inicializa un JFrame de esta forma:

   dlframe = new JFrame("A Java(TM) Technology Dive Log");

Si leemos la documentación de la clase JFrame debajo del sumario de constructores, descubriremos que hay varios constructores disponiles para construir un objeto JFrame:

  • El primero es el constructor por defecto, que crea un JFrame invisible y que no tiene otras características.
  • El segundo constructor crea un JFrame en la GraphicsConfiguration específica de un dispositivo de pantalla y un título en blanco.
  • El tercer constructor acepta un String como argumento, y crea un JFrame con el título proporcionado. Este es el constructor usado en el constructor de DiveLog.
  • El último constructor crea un JFrame con el título y la GraphicsConfiguration del dispositivo de pantalla especificados.

Aunque un objeto JFrame es inicializado con el título para el marco y asignado a la variable dlframe, todavía necesita un poco más de trabajo.

El siguiente fragmento de código contiene algunos conceptos avanzados que explicaremos completamente más adelante. Este método se asegura que la aplicación Dive Log se puede apagar de la forma apropiada.

// Closes from title bar
// and from menu
dlframe.addWindowListener(new WindowAdapter() 
  {
    public void windowClosing(WindowEvent e)
    {
    System.exit(0);
    }
 });
Sigue estos pasos...
  1. Abre el fichero DiveLog.java.
  2. Teclea, o copia y pega las siguientes líneas de código:
    public DiveLog()
    {
    
    // Create a frame object to add the 
    // application GUI components to.
    
      dlframe = new JFrame("A Java(TM) Technology Dive Log");
      
      // Closes from title bar
      //and from menu
      dlframe.addWindowListener(new WindowAdapter() 
      {
        public void windowClosing(WindowEvent e)
        {
     System.exit(0);
         }
       });
       
      
    }// Ends constructor
    
  3. Graba el fichero.

Luego, se ejemplariza el JTabbedPane. Al inicio de la clase DiveLog, declaramos la variable tabbedPane como del tipo JTabbedPane, pero no fue asignada. Aquí, en el construtor se usa la palabra clave new para crear un objeto JTabbedPane, pasándole los parámetros necesarios para la posición de los tabs en el lado izquierdo de la ventana, y la variable es asignada al objeto JTabbedPane:

// Tabbed pane with panels for components
   
tabbedPane = new JTabbedPane(SwingConstants.LEFT);

JTabbedPane es otra clase Java que crea tabs (pestañas) en una aplicación y que posee dos constructores. El constructor de DiveLog llama al constructor de la clase JTabbedPane que hace posible crear los tabs en TOP, BOTTOM, LEFT, o RIGHT. Simplemente tecleando nuestras preferencias cuando llamemos al constructor. En el caso de DiveLog, los tabs se crean a la izquierda de la pantalla. Puedes situarlos en otro lado si te apatece.

. Llamar a Métodos Predefinidos

JFrame hereda los métodos predefinidos de las clases Frame, Window, Container, Component, y Object. Aprenderemos sobre la herencia más adelante.

Recuerda que los métodos proporcionan acciones en las aplicaciones. Una clase tiene al menos un método, pero generalmente tiene muchos más. Puedes ver los métodos que tiene disponibles la clase JFrame leyendo la documentación de la clase JFrame y escaneando los métodos listados en las clases heredadas. Pulsa sobre los nombres de los métodos para encontrar la información que necesitas proprocionar cuando se les llama.

Los métodos, como los constructores, frecuentemente necesitan que les pasemos información a través de una lista de parámetros.

Llamamos a estos métodos predefinidos simplemente usando el operador punto (.) con el nombre de la variable objeto, de esta forma:

tabbedPane.setBackground(Color.blue);
tabbedPane.setForeground(Color.white);

Los métodos setBackground y setForeground son llamados y usados sobre el objeto tabbedPane, para seleccionar los colores de fondo y de primer plano. Podemos usar estos métodos sobre cualquier componente GUI para cambiar sus colores, simplemente llamándolos a través de su variable, y pasándoles la clase Color como un parámetro, junto con el color que queremos usar.

Sigue estos pasos...
  1. Abre el fichero DiveLog.java
  2. Teclea o copia y pega las siguientes líneas de código justo después de la última sección que has añadido:
    // Tabbed pane with panels for Jcomponents
    // Instantiate JTabbedPane with keyword new  
    tabbedPane =  new JTabbedPane(SwingConstants.LEFT);
    // Calls method to set color
    tabbedPane.setBackground(Color.blue);
    tabbedPane.setForeground(Color.white);
    
  3. Graba el fichero.

Los métodos predefinidos son fáciles de usar. Cuando decidamos que queremos crear un objeto de cierta clase, miramos la documentación de la clase y vemos los métodos que tiene disponibles. Creamos un ejemplar de la clase usando el operador new y asignando una variable, luego llamamos al método usando el operador punto como se explica arriba. Veremos más ejemplos de esto según vayamos progresando en la aplicación Dive Log.

En este punto, se ha llamado al constructor de la clase JTabbedPane y se ha ejemplarizado el objeto, pero no se han añadido los tabs individuales.

¿Cómo se añaden los tabs individuales al JTabbedPane?
   A. Asignando una variable y usando la palabra clave new

   B.  Llamando a un método especial de la clase JTabbedPane

   C.  Ninguna es correcta.

 
Patrocinados
 

Copyright © 1999-2007 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: musica mp3 | logos y melodias | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | recursos gratis | posicionamiento en buscadores | tienda virtual | gifs animados