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/

Ok.
ResponderEliminarCalificación: 100 (5/5)