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)