Transparencias de Java. Tema 7: AWT. Uploaded by Ingteleco

Documentos relacionados
Interfaz Gráfica de Usuario (GUI)

Programación de sistemas

Interfaces gráficas. Jose Jesus García Rueda

Componentes Swing. Las clases cuyo nombre comienza por J forman parte de Swing. Todas las demás están incluidas en AWT (Abstract Window Toolkit)

UNIDAD I.- Elementos de Interfaces Gráficas

Aplicaciones de Escritorio

2.1 Elementos gráficos en Java.

AULA MENTOR. educacion.es

Interfaces gráficas de usuario

Aplicaciones gráficas en Java Librería Swing

Construir una Interfaz Gráfica

Indice. Swing: conceptos. Generalidades. Swing & AWT: diferencias. Interfaz Gráfica de Usuario (GUI)

Tema 6. Interfaces gráficas de usuario (Parte 1)

Tema 8: Gestión de eventos

Agenda. Contenedores y componentes

INTERFAZ GRÁFICO DE USUARIO

Aplicaciones Java. Juan Manuel Fernández Peña Curso 2011, 2013

Introducción a Swing. Taller de Programación 2016

INTERFAZ GRÁFICO DE USUARIO APLICACIONES DE EJEMPLO

Programación Orientada a Objetos

Interfaces gráficas con Swing

Desarrollando aplicaciones mediante componentes

Ejemplo de la Clase Persona

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Federico Peinado

Desarrollo de aplicaciones gráficas

INGRESAR DATOS CON UN CONTROL VISUAL EN JAVA. CLASE JTEXTFIELD Y MÉTODO GETTEXT. EJEMPLOS (CU00928C)

Uso de Java Swing. Noviembre de 2013

Java GUI La librería Swing

Práctica 4: Java Remote Method Invocation (RMI)

INSTALACION Y PRUEBA DEL PLUGIN WindowBuilder para trabajar Swing en Eclipse

Programación de sistemas

Ejemplo de GUI con Swing

Interfaces gráficas I

USO DE LOS OBJETOS JLABEL, JTEXTFIELD Y JBUTTON

Tipos de programas en Java. Programación basada en eventos. Programación basada en eventos. Creación de una interfaz gráfico de usuario

Autor: Ing. Tymoschuk, Jorge

MÓDULO A UNIDADES DIDÁCTICAS:

Java y Eclipse Desarrolle una aplicación con Java y Eclipse

Universidad Carlos III de Madrid Departamento de Ingeniería Telemática. Swing

Programación de Eventos

Interacción con el Usuario Gestión de Eventos

Interfaces de usuario [Interfaces de usuario con Java]

Estructura de las Aplicaciones Orientadas a Objetos El patrón Modelo-Vista-Controlador (MVC)

Trabajando con GUI en Java Componente java.swing

Capítulo 7. Introducción a las Interfaces Gráficas de usuario. Continuar

Programación Avanzada. Juan Manuel Fernández. Curso 2011 Ejemplo de uso de sockets desde aplicaciones visuales. Usan un hilo en banco.

Sistema de Archivos en Java

PROGRAMA DE CURSO. Escuela de Ingeniería de Sistemas y Computación Universidad del Valle Santiago de Cali, Colombia. Febrero 2007

Programación Java Curso C Draw

CURSO: Programación de Aplicaciones en Lenguaje JAVA

HÉCTOR ARTURO FLÓREZ FERNÁNDEZ

Programa de Asignatura Programación Visual II

Práctica 4. Interfaces Gráficas de Usuario Duración 1 sesión

GUIA DE JAVA NIVEL BÁSICO

JAVA 7 Los fundamentos del lenguaje Java

Manejo de eventos AWT

MATRICES, ARREGLOS O ARRAYS DE ELEMENTOS GRÁFICOS EN JAVA. EJEMPLO CON JLABEL Y JTEXTFIELD. (CU00930C)

Introducción a las Interfaces Gráficas de Usuario en Java

Pasos a seguir para crear una aplicación visual en el lenguaje de programación Java con Netbeans IDE.

EJERCICIO GUIADO. JAVA: DISEÑO DE FORMULARIOS DESDE CÓDIGO

I. Introducción a la programación orientada a objetos y al lenguaje JAVA Colegio Reuven Feuerstein --Javier Navarro

Conocimientos previos

Reutilización del Software. Patrones de Diseño

Introducción a la Programación en Java. Unidad 7 Abstract Window Toolkit

Patrones de Diseño. Patrón estructural Composite. Técnicas de Programación - Curso 2007/08

Programación de Interfaces Gráficas en Java. Agustín J. González ELO329

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Desarrollo de aplicaciones con JAVA, JCreator, JDeveloper NetBeans

Componentes Swing look and feel pluggable ( mecanismo de double buffering, transparentes.

Examen de Programación II (Ingeniería Informática)

En este método la implementación de la interface de usuario donde se produce el evento y la implementación del oyente están en clases separadas.

Gestión de formularios: Manual de usuario

Aplicaciones Java. Juan Manuel Fernández Peña Curso 2011, 2013

Ingeniería del Software. Capa de Presentación. Java 2 con JFC/SWING. Componentes visuales. Gestión de la interfaz

OBJETOS CONTENEDORES JPANEL Y JSCROLLPANEL

Java Avanzado. Lenguaje de Programación Java. Interfaces Gráficas de Usuario con Java. Elaboró: Oscar Alejandro González Bustamante

Tema 7. Construcción de Applets en Java

1. Cómo hacer un applet? Implementación de un Applet (awt) Ejecución de los Applets Hacer el archivo HTML con los siguientes

Práctica 18c. Práctica 18c. José M. Ordax

Algoritmia y Programación

Introducción a la Programación Orientada a Objetos

Eclipse Visual Editor

Interfaces de usuario con

UNIDAD I.- Elementos de Interfaces Gráficas

Interfaces Gráficas de Usuario en Java Julio Introducción. 2. Crear una ventana 2

EJERCITACIÓN JAVA CÁTEDRA DE LENGUAJES ORIENTADOS A OBJETOS. Ing. Mario Bressano & Luciano Diamand ENVÍO RESUELTO 05

Interfaces gráficas de usuario

// Suma.java // Programa de suma que utiliza a JOptionPane para entrada y salida. import javax.swing.joptionpane; // el programa usa JOptionPane

Pontificia Universidad Católica del Ecuador

3URJUDPDFLyQ-DYD. 3UiFWLFD. -DYLHU *DUFtD GH -DOyQ Â -RVp,JQDFLR 5RGUtJXH] $OIRQVR %UD]iOH] Â $OEHUWR /DU]DEDO Â -HV~V &DOOHMD Â -RQ *DUFtD

d) Mencione dos diferencias y dos semejanzas entre clases abstractas e interfaces.

Transcripción:

Transparencias de Java Tema 7: AWT Uploaded by Ingteleco http://ingteleco.webcindario.com ingtelecoweb@hotmail.com La dirección URL puede sufrir modificaciones en el futuro. Si no funciona contacta por email

TEMA 7: PROGRAMACIÓN CON AWT LA LIBRERÍA AWT Qué es AWT? Librería que define un conjunto de clases e interfaces Java que permiten la construcción de interfaces gráficas de usuario También permite la gestión de los eventos generados por esas interfaces Tema 8 Dos elementos básicos: Contenedores (Clase java.awt.container) Componentes (Clase java.awt.component) COMPONENTES Y CONTENEDORES Qué es un Contenedor? Elemento gráfico que puede contener dentro a componentes. Lo son todas las clases que derivan de java.awt.container Ejemplos: Ventana (java.awt.frame) Dialogo (java.awt.dialog) Panel (java.awt.panel) Qué es un Componente? Cualquier elemento gráfico que puede aparecer en una GUI Lo son todas las clases que derivan de java.awt.component Ejemplos: Botones (java.awt.button), Campos de Texto (java.awt.textfield), Etiquetas (java.awt.label), Listas (java.awt.list), Elementos de Selección Múltiple y Exclusiva (java.awt.checkbox),... 1

Jerarquía AWT (simplificada) Component TextField... Button Container Label... List Panel Window Dialog Frame Un Contenedor es también un Componente! Esto permite que un contenedor puede contener dentro a tros contenedores (ya que también son componentes) COMPONENTES Cómo se crean los componentes? Cómo se crean los botones, las listas, los campos de texto, las etiquetas,...? Como cualquier otro objeto en Java Constructores Constructores Button boton = new Button(); Label etiqueta = new Label(); TextField campotexto = new TextField(); Cada tipo de componente tiene distintos tipos de constructores Ejemplo Componente TextField Campo de texto con tamaño por defecto y en blanco 2

TextField c = new TextField(); Campo de texto inicializado con un texto TextField c = new TextField( Hola a todos ); Campo de texto con tamaño 20 (tiene espacio para 20 caracteres) TextField c = new TextField(20); Campo de texto con tamaño 20 e inicializado con un texto TextField c = new TextField( Hola, 20); Ejemplo Label Etiqueta sin texto Label etiq = new Label(); Etiquetas con un determinado texto Label etiq = new Label( Apellido: ); Etiqueta con un determinado texto y una determinada ropiedade Label etiq = new Label( Edad:, Label.CENTER); Métodos más Comunes Los componentes, como todos los objetos, proporcionan métodos que permiten manipular sus propiedades. Ejemplos: Modificación de la etiqueta de un botón boton.setlabel( Aceptar ); Consulta del texto de un campo de texto campo.gettext(); Modificación del texto de una etiqueta etiqueta.settext(); 3

Modificación del tamaño de una caja de texto campo.setcolumns(30); Inserción y consulta de elementos en una lista lista.add( Item1 ); lista.add( Item2 ); lista.getitem(2); Hacer visible e invisible un botón boton.setvisible(false); Activar o desactivar un botón boton.setenabled(true); Más de información sobre componentes API CONTENEDORES Tipos de Contenedores Frame La ventana tradicional de Windows (u otro S.O. de ventanas) Dialog Ventana (generalmente en forma modal) que sirve para lanzar preguntas o advertencias al usuario. Depende de un Frame principal y no admite elementos como menús, barras de herramientas,... Panel Contenedor (generalmente invisible) que permite agrupar y organizar los elementos de una ventana. Siempre se encuentra insertado dentro de un Frame. Muy útil. 4

Cómo se crean los contenedores? Cómo se crean las ventanas, los diálogos, los paneles,...? Frame f = new Frame(); Panel p = new Panel(); Cómo se añaden componentes a un contenedor? Mediante el método add( ) Ejemplos: <contenedor>.add(<componente>) Inserción de dos botones y dos campos de texto en una ventana Frame ventana = new Frame(); ventana.add(new Button( Aceptar )); ventana.add(new Button( Cancelar )); ventana.add(new TextField(20)); ventana.add(new TextField(30)); Inserción de una etiqueta, una lista y un botón en un panel Panel panel = new Panel(); panel.add(new Label( Soy una etiqueta )); panel.add(new List()); panel.add(new Button( Ok )); Inserción de un panel dentro de una ventana ventana.add(panel); Algunos métodos de los contenedores Asignación de título y tamaño a una ventana ventana.settitle( Titulo de la Ventana ); ventana.setsize(300,200); Asignación de color de fondo a un panel panel.setbackground(color.blue); Mas métodos API 5

CREACIÓN DE VENTANAS PERSONALIZADAS Programación Gráfica con AWT Normalmente no se trabaja con las ventanas por defecto que trae Java (clase java.awt.frame) Lo que se hace es crear nuestras propias ventanas y configurarlas a nuestro gusto Para ello: Se crea una clase y se la hace derivar de la clase Frame Con esto creamos una clase que es una ventana pero que está vacía. Se le añaden todos los elementos (componentes) que queramos que tenga nuestra ventana Ejemplo: Ventana que posee un panel, dos etiquetas, un campo de texto, un área de texto y dos botones import java.awt.frame; import java.awt.button; import java.awt.textfield; import java.awt.textarea; import java.awt.panel; import java.awt.label; public class MiVentana extends Frame Panel panelcentral; TextField email; Label etiqueta1; Label etiqueta2; TextArea mensaje; Button enviar; Button salir; public MiVentana() panelcentral = new Panel(); email = new TextField(20); 6

mensaje = new TextArea(5,35); etiqueta1 = new Label("Email:"); etiqueta2 = new Label("Escribe aquí tu Mensaje"); enviar = new Button("Enviar"); salir = new Button("Salir"); panelcentral.add(etiqueta1); panelcentral.add(email); panelcentral.add(etiqueta2); panelcentral.add(mensaje); panelcentral.add(enviar); panelcentral.add(salir); this.add(panelcentral); this.setsize(300,225); this.settitle("envío de Correo Electrónico"); this.show(); public static void main(string[] args) new MiVentana(); Este código daría lugar a la siguiente ventana: 7

LAYOUTS Al insertar un elemento dentro de un contenedor... Cómo podemos controlar en qué posición se va a situar ese elemento en el contenedor? En el ejemplo anterior Por qué los botones se situaban en la parte de abajo? Y por qué el campo de texto se coloca arriba? Para controlar la disposición de los componentes dentro de un contenedor Java proporciona los Layouts Los Layouts, como todo en Java, son objetos Todo contenedor debe tener asignado un layout Para asignar un Layout determinado a un contenedor: <contenedor>.setlayout(<layout>) Tipos de Layouts FlowLayout Sitúa los elementos uno detrás de otro, de izquierda a derecha y de arriba a abajo. Es el layout por defecto de los paneles Ejemplo: Se correspondería con el siguiente código: import java.awt.frame; import java.awt.button; import java.awt.flowlayout; 8

public class VentanaFlowLayout extends Frame public VentanaFlowLayout() Button boton1 = new Button("Boton 1"); Button boton2 = new Button("Boton 2"); Button boton3 = new Button("Boton 3"); Button boton4 = new Button("Boton 4"); this.setlayout(new FlowLayout()); this.add(boton1); this.add(boton2); this.add(boton3); this.add(boton4); Programación Gráfica con AWT this.setsize(300,150); this.show(); public static void main(string[] args) new VentanaFlowLayout(); BorderLayout Sitúa los elementos en una de estas 5 orientaciones: Norte, Sur, Este, Oeste y Centro Es el layout por defecto de los Frames Ejemplo: Se correspondería con el siguiente código: 9

import java.awt.frame; import java.awt.button; import java.awt.borderlayout; public class VentanaBorderLayout extends Frame public VentanaBorderLayout() Button boton1 = new Button("Norte"); Button boton2 = new Button("Sur"); Button boton3 = new Button("Este"); Button boton4 = new Button("Oeste"); Button boton5 = new Button("Centro"); this.setlayout(new BorderLayout()); this.add(boton1, "North"); this.add(boton2, "South"); this.add(boton3, "East"); this.add(boton4, "West"); this.add(boton5, "Center"); this.setsize(300,150); this.show(); public static void main(string[] args) new VentanaBorderLayout(); GridLayout Divide el contenedor en un determinado número de celdas (de idéntico tamaño y dispuestas en forma de filas y columnas) y sitúa cada elemento en una de esas celdas 10

Se correspondería con el siguiente código: import java.awt.frame; import java.awt.button; import java.awt.gridlayout; public class VentanaGridLayout extends Frame public VentanaGridLayout() Button boton1 = new Button("Celda1"); Button boton2 = new Button("Celda2"); Button boton3 = new Button("Celda3"); Button boton4 = new Button("Celda4"); Button boton5 = new Button("Celda5"); Button boton6 = new Button("Celda6"); this.setlayout(new GridLayout(3,2)); this.add(boton1); this.add(boton2); this.add(boton3); this.add(boton4); this.add(boton5); this.add(boton6); this.setsize(300,150); this.show(); public static void main(string[] args) new VentanaGridLayout(); GridBagLayout Divide el contenedor en celdas (como el GridLayout) pero sin necesidad de que éstas tengan que ser del mismo tamaño. CardLayout Gestiona un conjunto de tarjetas (un grupo de componentes) de forma que en cada momento sólo una de las tarjetas es visible. 11

UN EJEMPLO QUE INTEGRA TODO El objetivo es construir una interfaz como la siguiente: La distribución interna de los elementos es la siguiente: panelnorte (FlowLayout) X Etiqueta de Cabecera panelcentral (GridLayout(1,2)) panelizquierdo (FlowLayout) PanelDerecho (GridLayout (2,1)) panelsur (FlowLayout) Dos Botones VentanaEjemplo (BorderLayout) Campos de texto y el area de texto panelarriba (FlowLayout) La Lista Los Checkbox panelabajo (FlowLayout) 12

Este es su código: import java.awt.frame; import java.awt.button; import java.awt.textfield; import java.awt.textarea; import java.awt.panel; import java.awt.label; import java.awt.list; import java.awt.checkbox; import java.awt.checkboxgroup; import java.awt.flowlayout; import java.awt.gridlayout; public class VentanaEjemplo extends Frame Panel panelnorte; Panel panelcentral; Panel panelsur; Panel panelizquierdo; Panel panelderecho; Panel panelarriba; Panel panelabajo; TextField nombre; TextField direccion; TextField telefono; Label etiqnombre; Label etiqdireccion; Label etiqtelefono; Label etiqcabecera; Label etiqotrosdatos; Label etiqestudios; TextArea otrosdatos; CheckboxGroup sexo; Checkbox hombre; Checkbox mujer; Checkbox coche; Checkbox viajar; 13

Checkbox mili; List estudios; Button insertar; Button salir; public VentanaEjemplo() panelnorte= new Panel(); panelcentral = new Panel(); panelsur = new Panel(); panelizquierdo = new Panel(); panelderecho = new Panel(); panelarriba = new Panel(); panelabajo = new Panel(); nombre = new TextField(20); direccion = new TextField(20); telefono = new TextField(20); etiqcabecera = new Label("POR FAVOR, RELLENA LOS DATOS DE TU CURRICULUM"); etiqnombre = new Label("Nombre"); etiqdireccion = new Label("Dirección"); etiqtelefono = new Label("Teléfono"); etiqotrosdatos = new Label("Otros Datos de Interés"); etiqestudios = new Label(" Selecciona tus Estudios"); otrosdatos = new TextArea(6,25); sexo = new CheckboxGroup(); hombre = new Checkbox("Hombre", sexo, true); mujer = new Checkbox("Mujer", sexo, false); viajar = new Checkbox("Disponibilidad para Viajar"); coche = new Checkbox("Posee Coche Propio"); mili = new Checkbox("Exento Servicio Militar"); estudios = new List(8,true); 14

estudios.add("ingeniería Informática"); estudios.add("ingeniería Industrial"); estudios.add("ingeniería Telecomunicaciones"); estudios.add("arquitectura"); estudios.add("filología Vasca"); estudios.add("derecho"); estudios.add("psicología"); estudios.add("farmacia"); estudios.add("medicina"); estudios.add("hostelería"); insertar = new Button("Insertar Datos"); salir = new Button("Salir"); panelnorte.add(etiqcabecera); panelsur.add(insertar); panelsur.add(salir); panelizquierdo.setlayout( new FlowLayout(FlowLayout.LEFT)); panelizquierdo.add(etiqnombre); panelizquierdo.add(nombre); panelizquierdo.add(etiqdireccion); panelizquierdo.add(direccion); panelizquierdo.add(etiqtelefono); panelizquierdo.add(telefono); panelizquierdo.add(etiqotrosdatos); panelizquierdo.add(otrosdatos); panelarriba.setlayout(new FlowLayout()); panelarriba.add(etiqestudios); panelarriba.add(estudios); panelabajo.setlayout( new FlowLayout(FlowLayout.LEFT)); panelabajo.add(hombre); panelabajo.add(mujer); panelabajo.add(viajar); panelabajo.add(coche); panelabajo.add(mili); panelderecho.setlayout(new GridLayout(2,1)); 15

panelderecho.add(panelarriba); panelderecho.add(panelabajo); panelcentral.setlayout(new GridLayout(1,2)); panelcentral.add(panelizquierdo); panelcentral.add(panelderecho); this.add(panelnorte, "North"); this.add(panelsur, "South"); this.add(panelcentral, "Center"); this.setsize(450,425); this.settitle("currículum Vitae"); this.show(); public static void main(string[] args) new VentanaEjemplo(); SWING Librería que es una versión mejorada de AWT Soluciona algunos problemas de AWT Mejora el aspecto de las interfaces Mejora la portabilidad de las aplicaciones gráficas Qué aporta Swing? En qué se diferencia de AWT? Incorpora nuevas versiones de todos los componentes de AWT JFrame, JButton, JLabel, JList, JPanel, JTextbox, JTextArea,... Cada ventana (JFrame) posee un panel interno que es sobre el que se añaden los componentes y no sobre la propia ventana Para acceder a este panel: ventana.getcontentpane(); 16

Por tanto, para insertar componentes en una ventana: ventana.getcontentpane().add(new JButton()); ventana.getcontentpane().add(new JPanel()); El ejemplo anterior con componentes SWING Aspecto de la interfaz Código import javax.swing.jframe; import javax.swing.jbutton; import javax.swing.jtextfield; import javax.swing.jtextarea; import javax.swing.jpanel; import javax.swing.jlabel; import javax.swing.jlist; import javax.swing.jscrollpane; import javax.swing.jcheckbox; import javax.swing.buttongroup; import java.awt.flowlayout; 17

import java.awt.gridlayout; public class VentanaEjemploSwing extends JFrame JPanel JPanelNorte; JPanel JPanelCentral; JPanel JPanelSur; JPanel JPanelIzquierdo; JPanel JPanelDerecho; JPanel JPanelArriba; JPanel JPanelAbajo; JTextField nombre; JTextField direccion; JTextField telefono; JLabel etiqnombre; JLabel etiqdireccion; JLabel etiqtelefono; JLabel etiqcabecera; JLabel etiqotrosdatos; JLabel etiqestudios; JTextArea otrosdatos; ButtonGroup sexo; JCheckBox hombre; JCheckBox mujer; JCheckBox coche; JCheckBox viajar; JCheckBox mili; JList estudios; JButton insertar; JButton salir; public VentanaEjemploSwing() JPanelNorte= new JPanel(); JPanelCentral = new JPanel(); 18

JPanelSur = new JPanel(); JPanelIzquierdo = new JPanel(); JPanelDerecho = new JPanel(); JPanelArriba = new JPanel(); JPanelAbajo = new JPanel(); nombre = new JTextField(20); direccion = new JTextField(20); telefono = new JTextField(20); etiqcabecera = new JLabel("POR FAVOR, RELLENA LOS DATOS DE TU CURRICULUM"); etiqnombre = new JLabel("Nombre"); etiqdireccion = new JLabel("Dirección"); etiqtelefono = new JLabel("Teléfono"); etiqotrosdatos = new JLabel("Otros Datos de Interés"); etiqestudios = new JLabel("Selecciona tus Estudios"); otrosdatos = new JTextArea(10,25); sexo = new ButtonGroup(); hombre = new JCheckBox("Hombre", true); mujer = new JCheckBox("Mujer", false); sexo.add(hombre); sexo.add(mujer); viajar = new JCheckBox("Disponibilidad para Viajar"); coche = new JCheckBox("Posee Coche Propio"); mili = new JCheckBox("Exento Servicio Militar"); String[] losestudios = "Ingeniería Informática", "Ingeniería Industrial", "Ingeniería Telecomunicaciones", "Arquitectura", "Filología Vasca", "Derecho", "Psicología", "Farmacia", "Medicina", "Hostelería"; 19

estudios = new JList(losEstudios); JScrollPane scrolllista = new JScrollPane(estudios); insertar = new JButton("Insertar Datos"); salir = new JButton("Salir"); JPanelNorte.add(etiqCabecera); JPanelSur.add(insertar); JPanelSur.add(salir); JPanelIzquierdo.setLayout( new FlowLayout(FlowLayout.LEFT)); JPanelIzquierdo.add(etiqNombre); JPanelIzquierdo.add(nombre); JPanelIzquierdo.add(etiqDireccion); JPanelIzquierdo.add(direccion); JPanelIzquierdo.add(etiqTelefono); JPanelIzquierdo.add(telefono); JPanelIzquierdo.add(etiqOtrosDatos); JPanelIzquierdo.add(otrosDatos); JPanelArriba.setLayout(new FlowLayout()); JPanelArriba.add(etiqEstudios); JPanelArriba.add(scrollLista); JPanelAbajo.setLayout( new FlowLayout(FlowLayout.LEFT)); JPanelAbajo.add(hombre); JPanelAbajo.add(mujer); JPanelAbajo.add(viajar); JPanelAbajo.add(coche); JPanelAbajo.add(mili); JPanelDerecho.setLayout(new GridLayout(2,1)); JPanelDerecho.add(JPanelArriba); JPanelDerecho.add(JPanelAbajo); JPanelCentral.setLayout(new GridLayout(1,2)); JPanelCentral.add(JPanelIzquierdo); JPanelCentral.add(JPanelDerecho); 20

this.getcontentpane().add(jpanelnorte, "North"); this.getcontentpane().add(jpanelsur, "South"); this.getcontentpane().add(jpanelcentral, "Center"); this.setsize(450,425); this.settitle("currículum Vitae"); this.show(); public static void main(string[] args) new VentanaEjemploSwing(); 21