miércoles, 28 de septiembre de 2011

Codificación de herencia y polimorfismo en mi proyecto

Como ya lo mencioné en la anterior entrada, la parte funcional o lógica de mi proyecto no aplica la herencia ni el polimorfismo, sin embargo en lo que respecta a la parte que tiene que ver con los JComponents aplico la herencia cuando quiero crear la JFrame y hago uso de “super” para hacer referencia al constructor de la superclase (JFrame). El polimorfismo está presente por ejemplo cuando creo el JTextArea ya que a constructor le puedo pasar parámetros de distintas maneras.

Lo siguiente representa una parte de mi código correspondiente a la interfaz. La intención es mostrar la herencia aplicada en la creación de la ventana.

import javax.swing.*;
import java.awt.*;


// Clase Interfaz que hereda de JFrame

public class Interfaz extends JFrame{

 JMenuBar barraMenu;
 JMenu archivo;
 JMenuItem abrirFichero;
 JMenuItem guardarFichero;
 JMenu edicion;
 JMenuItem cortar;
 JMenuItem copiar;
 JMenuItem pegar;
 JTextArea areaDeTrabajo;
 JScrollPane desplazamiento;  
 

 public Interfaz(){

 super("Editor ++"); // Se hace referencia al constructor de la superclase con "super"
 this.setSize(400,400);
 this.definir_componentes();
 this.agregar_componentes();
 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 this.setVisible(true);

 }

 public void definir_componentes(){
 
 areaDeTrabajo = new JTextArea();
 areaDeTrabajo.setLineWrap(true);
 areaDeTrabajo.setWrapStyleWord(true);
 desplazamiento = new JScrollPane(areaDeTrabajo);

 barraMenu = new JMenuBar();
 archivo = new JMenu("Archivo");
 edicion = new JMenu("Edición");
 
 abrirFichero = new JMenuItem(abr);
 guardarFichero = new JMenuItem();
 
 
 copiar = new JMenuItem();
 pegar = new JMenuItem();
 cortar = new JMenuItem();
 
 
 }

 public void agregar_componentes(){

 barraMenu.add(archivo);
 barraMenu.add(edicion);
 archivo.add(abrirFichero);
 archivo.add(guardarFichero);
 edicion.add(copiar);
 edicion.add(pegar);
 edicion.add(cortar);
 this.add(barraMenu, BorderLayout.NORTH);
 this.add(desplazamiento, BorderLayout.CENTER);

 } 

} 



Ejemplo del polimorfismo paramétrico de la clase JTextArea que utilizo tomado de http://download.oracle.com/javase/6/docs/api/


1 comentario: