Programación Orientada a Objetos - Departamento de … ·  · 2014-12-171 Programación Orientada...

26
1 Programación Orientada a Programación Orientada a Objetos Objetos GUI en JAVA GUI en JAVA Angela C. Angela C. Carrillo Ramos Carrillo Ramos Manejo de eventos Manejo de eventos Técnica Técnica de de programación programación avanzada avanzada Se Se trabaja trabaja con con mensajes mensajes Maneja Maneja contenedores contenedores Objetos Objetos que que escuchan escuchan y procesan procesan eventos eventos Objetos Objetos que que producen producen eventos eventos Pueden Pueden ser ser utilizados utilizados para para separar separar diferentes diferentes niveles niveles conceptuales, conceptuales, v.gr gr., la la interfaz interfaz con con el el modelo modelo del del mundo mundo. Sirve Sirve de de apoyo apoyo a algunos algunos patrones patrones de de diseño diseño.

Transcript of Programación Orientada a Objetos - Departamento de … ·  · 2014-12-171 Programación Orientada...

Page 1: Programación Orientada a Objetos - Departamento de … ·  · 2014-12-171 Programación Orientada a Objetos GUI en JAVA Angela C. Angela C. Carrillo Ramos Carrillo Ramos Manejo

1

Programación Orientada a Programación Orientada a ObjetosObjetos

GUI en JAVAGUI en JAVA

Angela C. Angela C. Carrillo RamosCarrillo Ramos

Manejo de eventosManejo de eventos

�� TécnicaTécnica dede programaciónprogramación avanzadaavanzada

�� SeSe trabajatrabaja concon mensajesmensajes

�� ManejaManeja contenedorescontenedores

�� ObjetosObjetos queque escuchanescuchan yy procesanprocesan eventoseventos

�� ObjetosObjetos queque producenproducen eventoseventos

�� PuedenPueden serser utilizadosutilizados parapara separarseparardiferentesdiferentes nivelesniveles conceptuales,conceptuales, vv..grgr..,, lalainterfazinterfaz concon elel modelomodelo deldel mundomundo..

�� SirveSirve dede apoyoapoyo aa algunosalgunos patronespatrones dedediseñodiseño..

Page 2: Programación Orientada a Objetos - Departamento de … ·  · 2014-12-171 Programación Orientada a Objetos GUI en JAVA Angela C. Angela C. Carrillo Ramos Carrillo Ramos Manejo

2

Modelo de eventosModelo de eventos

�� TODOTODO

�� Posibles aplicacionesPosibles aplicaciones

�� Control de negocioControl de negocio

�� InterfacesInterfaces

�� Interacción entre objetosInteracción entre objetos

�� Utilizar el ejemplo de la tienda (número de Utilizar el ejemplo de la tienda (número de items < que una cantidad dada)items < que una cantidad dada)

�� Listeners Listeners

�� AdaptersAdapters

EventosEventos

ModeloModelo dede EventosEventos enen JavaJavaComponentesComponentes (gráficos)(gráficos) sonson fuentefuente dede eventoseventos

ElEl botónbotón generagenera unun evento!evento!

ElEl botónbotón eses lala fuentefuente deldel

eventoevento

O.K.Click en el botón

Page 3: Programación Orientada a Objetos - Departamento de … ·  · 2014-12-171 Programación Orientada a Objetos GUI en JAVA Angela C. Angela C. Carrillo Ramos Carrillo Ramos Manejo

3

EventosEventos

�� ModeloModelo dede eventoseventos dede delegacióndelegación

�� SeSe basabasa enen elel patrónpatrón dede diseñodiseño MVCMVC(Model(Model--ViewView--Controller,Controller, ModeloModelo--VistaVista--Controlador)Controlador)��AlmacenarAlmacenar elel estadoestado internointerno enen unun

conjuntoconjunto dede clasesclases llamadollamado modelomodelo

��MostrarMostrar lala informacióninformación deldel modelomodelo enen unaunavistavista

��CambiarCambiar lala informacióninformación deldel modelomodelo enen ununcontroladorcontrolador

EventosEventos

ModeloModelo dede EventosEventos enen JavaJava

TodoTodo componentecomponente tienetiene eventoseventos.. DichosDichoseventoseventos sonson predefinidospredefinidos..

PaquetePaquete:: javajava..utilutil..EventObjectEventObject

UnUn eventoevento eses unun objetoobjeto queque contienecontieneinformacióninformación deldel contextocontexto enen elel queque ocurrióocurrió..

ButtonButton ActionEventActionEvent

ListList MouseEvent, ItemEventMouseEvent, ItemEvent

TextFieldTextField ActionEvent, TextEventActionEvent, TextEvent

Page 4: Programación Orientada a Objetos - Departamento de … ·  · 2014-12-171 Programación Orientada a Objetos GUI en JAVA Angela C. Angela C. Carrillo Ramos Carrillo Ramos Manejo

4

EventosEventos

ModeloModelo dede EventosEventos enen JavaJava

MenuItemMenuItem Action EventAction Event

CheckboxCheckbox ItemEventItemEvent

ChoiceChoice ItemEventItemEvent

ScrollPaneScrollPane AdjustmentEventAdjustmentEvent

ScrollbarScrollbar AdjustmentEventAdjustmentEvent

TextAreaTextArea TextEventTextEvent

AppletApplet

Modelo de Eventos en JavaModelo de Eventos en Java

ExistenExisten eventoseventos especialesespeciales quequeactúanactúan sobresobre todostodos loslos componentescomponentes::

�� ComponentEventComponentEvent

�� FocusEventFocusEvent

�� KeyEventKeyEvent

�� MouseEventMouseEvent

Page 5: Programación Orientada a Objetos - Departamento de … ·  · 2014-12-171 Programación Orientada a Objetos GUI en JAVA Angela C. Angela C. Carrillo Ramos Carrillo Ramos Manejo

5

Eventos SwingEventos Swing

��AncestorEventAncestorEvent

��ChangeEventChangeEvent

��DocumentEventDocumentEvent

��MenuEventMenuEvent

��HyperlinkEventHyperlinkEvent

EventosEventos

EventObject

AWT Event

Action

Event

Adjustment

Event

Component

Event

Item

Event

Text

Event

Container

Event

Focus

Event

Input

Event

Paint

Event

Window

Event

Key

Event

Mouse

Event

Page 6: Programación Orientada a Objetos - Departamento de … ·  · 2014-12-171 Programación Orientada a Objetos GUI en JAVA Angela C. Angela C. Carrillo Ramos Carrillo Ramos Manejo

6

EventosEventos

�� ¿Quién reacciona ante el evento?¿Quién reacciona ante el evento?

Escucha (Listener)Escucha (Listener)

1.1. ElEl contenedorcontenedor (panel)(panel) debedebesubscribirsesubscribirse comocomo escuchaescucha alalcomponente(botón)componente(botón)

2.2. CuandoCuando elel eventoevento ocurre,ocurre, loslosescuchasescuchas sonson informadosinformados parapara quequereaccionenreaccionen..

Modelo de EventosModelo de Eventos

Panel

ActionEvent

O.K.

getObject

addActionListener

actionPerformed

Page 7: Programación Orientada a Objetos - Departamento de … ·  · 2014-12-171 Programación Orientada a Objetos GUI en JAVA Angela C. Angela C. Carrillo Ramos Carrillo Ramos Manejo

7

EjemploEjemplo

Panel p = new Panel();Panel p = new Panel();

Button b = new Button(“O.K”);Button b = new Button(“O.K”);

b.addActionListener(p);b.addActionListener(p);

El panel se

subscribe al botón

como escucha

Paquete GráficoPaquete Gráfico

�� IndependienteIndependiente dede lala plataformaplataforma

�� SeSe trabajatrabaja concon COMPONENTESCOMPONENTESprefabricadosprefabricados

�� ManejaManeja contenedorescontenedores�� AgrupaciónAgrupación dede COMPONENTESCOMPONENTES..

�� ControlaControla elel tamañotamaño yy posicionamientoposicionamiento

�� Frame,Frame, Panel,Panel, AppletApplet

�� LayoutLayout:: DistribuciónDistribución dede loslos componentescomponentes

Page 8: Programación Orientada a Objetos - Departamento de … ·  · 2014-12-171 Programación Orientada a Objetos GUI en JAVA Angela C. Angela C. Carrillo Ramos Carrillo Ramos Manejo

8

Paquete GráficoPaquete Gráfico

ComponentComponent

�� Objeto fundamental en la Interfaz de Objeto fundamental en la Interfaz de usuariousuario

�� Contenedor: son a su vez componentesContenedor: son a su vez componentes

�� Funcionalidad: Apariencia y Funcionalidad: Apariencia y ComportamientoComportamiento

�� Atributos: visibilidad, tamaño, localizaciónAtributos: visibilidad, tamaño, localización

�� Comportamiento: Obedece a eventos Comportamiento: Obedece a eventos

�� Comunica a su contenedor si va a afectar a Comunica a su contenedor si va a afectar a otros componentesotros componentes

Paquete GráficoPaquete Gráfico

Contenedor (Container)Contenedor (Container)

Aloja y maneja otros componentes: Aloja y maneja otros componentes: Frame, Panel, AppletFrame, Panel, Applet

add()add() Adiciona componenteAdiciona componente

remove()remove() Elimina componenteElimina componente

Page 9: Programación Orientada a Objetos - Departamento de … ·  · 2014-12-171 Programación Orientada a Objetos GUI en JAVA Angela C. Angela C. Carrillo Ramos Carrillo Ramos Manejo

9

AppletsAppletsAppletsApplets

PequeñasPequeñas aplicacionesaplicaciones queque tienentienen accesoacceso aaunun servidorservidor Internet,Internet, sonson transportadastransportadas aatravéstravés dede lala redred yy sese ejecutanejecutan comocomo parteparte dedeunun documentodocumento HMTLHMTL

<applet code=“nom.class” width=200 <applet code=“nom.class” width=200 height=40>height=40>

</applet></applet>

También pueden ser apreciadas con También pueden ser apreciadas con AppletViewerAppletViewer

AppletAppletAppletApplet

Orden de inicialización de un appletOrden de inicialización de un applet

�� initinit

�� startstart

�� stopstop

�� destroydestroy

�� Otros métodos son:Otros métodos son:

�� paintpaint

�� updateupdate

Page 10: Programación Orientada a Objetos - Departamento de … ·  · 2014-12-171 Programación Orientada a Objetos GUI en JAVA Angela C. Angela C. Carrillo Ramos Carrillo Ramos Manejo

10

AppletApplet

Restricciones de SeguridadRestricciones de Seguridad

�� NoNo puedepuede leerleer oo escribirescribir archivosarchivos enen elelhosthost locallocal

�� SóloSólo puedenpueden abrirabrir conexionesconexiones dede redred alalservidorservidor dondedonde sese encuentranencuentran..

�� NoNo puedenpueden corrercorrer otrosotros procesosprocesos enen elelhosthost locallocal

�� PuedenPueden trabajartrabajar concon servidoresservidores paraparaalmacenaralmacenar yy comunicarcomunicar datosdatos.. (usando(usandoRMI,RMI, porpor ejemplo)ejemplo)

AppletAppletAppletApplet

¿Cómo se define?¿Cómo se define?

class nomclase extends Applet{class nomclase extends Applet{

<cuerpo de la clase><cuerpo de la clase>

}}

class nomclase extends JApplet{class nomclase extends JApplet{

<cuerpo de la clase><cuerpo de la clase>

}}

Page 11: Programación Orientada a Objetos - Departamento de … ·  · 2014-12-171 Programación Orientada a Objetos GUI en JAVA Angela C. Angela C. Carrillo Ramos Carrillo Ramos Manejo

11

Applet en AWTApplet en AWT

Imprime el mensaje Hola MundoImprime el mensaje Hola Mundo

import java.awt.*;import java.awt.*;

import java.applet.*;import java.applet.*;

public class HelloWorld extends Applet {public class HelloWorld extends Applet {

public void paint(Graphics g) {public void paint(Graphics g) {

g.drawString("Hello World !", 20, 20);g.drawString("Hello World !", 20, 20);

}}

}}

Applet en SwingApplet en Swing

�� Imprime el mensaje Hola MundoImprime el mensaje Hola Mundo

import javax.swing.*;import javax.swing.*;

import java.awt.*;import java.awt.*;

public class HelloWorld extends JApplet {public class HelloWorld extends JApplet {

public void paint(Graphics g) {public void paint(Graphics g) {

g.drawString("Hello World !", 20, 20);g.drawString("Hello World !", 20, 20);

}}

}}

Page 12: Programación Orientada a Objetos - Departamento de … ·  · 2014-12-171 Programación Orientada a Objetos GUI en JAVA Angela C. Angela C. Carrillo Ramos Carrillo Ramos Manejo

12

AppletApplet

<HTML><HTML>

<BODY><BODY>

<APPLET code=CambioMoneda.class WIDTH=250 <APPLET code=CambioMoneda.class WIDTH=250

HEIGHT=100>HEIGHT=100>

<PARAM NAME=valor VALUE=70000><PARAM NAME=valor VALUE=70000>

<PARAM NAME=cActual VALUE=1580><PARAM NAME=cActual VALUE=1580>

</APPLET> </APPLET>

<BR><BR>

<BR>(<A HREF="CambioMoneda.java">C&oacute;digo</A>)<BR>(<A HREF="CambioMoneda.java">C&oacute;digo</A>)

</BODY></BODY>

</HTML></HTML>

AppletApplet

import java.awt.*;import java.awt.*;

import java.applet.*;import java.applet.*;

public class CambioMoneda extends Applet {public class CambioMoneda extends Applet {

public void paint(Graphics g) {public void paint(Graphics g) {

String strCambio = getParameter("cActual");String strCambio = getParameter("cActual");

String strValor = getParameter("valor");String strValor = getParameter("valor");

System.out.println( "cambio: " + strCambio + "; valor: " + System.out.println( "cambio: " + strCambio + "; valor: " +

strValor );strValor );

double cambio = ( Double.valueOf(strCambio) ).doubleValue();double cambio = ( Double.valueOf(strCambio) ).doubleValue();

double valor = ( Double.valueOf(strValor) ).doubleValue();double valor = ( Double.valueOf(strValor) ).doubleValue();

g.drawString("El valor en dolares de " + valor + " pesos es: " + g.drawString("El valor en dolares de " + valor + " pesos es: " +

valor/cambio, 20, 20); valor/cambio, 20, 20);

}}

}}

Page 13: Programación Orientada a Objetos - Departamento de … ·  · 2014-12-171 Programación Orientada a Objetos GUI en JAVA Angela C. Angela C. Carrillo Ramos Carrillo Ramos Manejo

13

EjemploEjemplo

public class MiPanel extends Panel public class MiPanel extends Panel implements implements

ActionListenerActionListener

{{ ......

public void public void actionPerformedactionPerformed((ActionEventActionEvent evt)evt)

{{

// Qué se debe hacer cuando se hace click en // Qué se debe hacer cuando se hace click en

el botónel botón

}}

}}

Ejemplo 2 (AWT)Ejemplo 2 (AWT)

import java.awt.*;import java.awt.*;

import java.awt.event.*;import java.awt.event.*;

import java.applet.Applet;import java.applet.Applet;

public class TextEntryBox extends Applet public class TextEntryBox extends Applet

implements ActionListener{implements ActionListener{

TextArea area;TextArea area;

TextField campo;TextField campo;

Page 14: Programación Orientada a Objetos - Departamento de … ·  · 2014-12-171 Programación Orientada a Objetos GUI en JAVA Angela C. Angela C. Carrillo Ramos Carrillo Ramos Manejo

14

Ejemplo 2 (AWT)Ejemplo 2 (AWT)

public void init(){public void init(){

setLayout(new BorderLayout());setLayout(new BorderLayout());

add(“Center”, area=new TextArea());add(“Center”, area=new TextArea());

area.setFont(new area.setFont(new

Font(“TimesRoman”,Font.BOLD,18));Font(“TimesRoman”,Font.BOLD,18));

area.setText(“Hola a todos!”);area.setText(“Hola a todos!”);

add(“South”, campo = new TextField());add(“South”, campo = new TextField());

campo.addActionListener(this);campo.addActionListener(this);

}}

Ejemplo 2 (AWT)Ejemplo 2 (AWT)

public void actionPerformed(ActionEvent e){public void actionPerformed(ActionEvent e){

area.append(campo.getText() + ‘area.append(campo.getText() + ‘\\n’);n’);

campo.setText(“”);campo.setText(“”);

}}

}}

Page 15: Programación Orientada a Objetos - Departamento de … ·  · 2014-12-171 Programación Orientada a Objetos GUI en JAVA Angela C. Angela C. Carrillo Ramos Carrillo Ramos Manejo

15

Ejemplo 2 (Swing)Ejemplo 2 (Swing)

Coloca todo lo del campo de texto en la Caja de TextoColoca todo lo del campo de texto en la Caja de Texto

import javax.swing.*;import javax.swing.*;

import java.awt.event.*;import java.awt.event.*;

import java.awt.*;import java.awt.*;

public class TextEntryBox extends JApplet implements public class TextEntryBox extends JApplet implements

ActionListener{ActionListener{

JTextArea area;JTextArea area;

JTextField campo;JTextField campo;

Ejemplo 2 (Swing)Ejemplo 2 (Swing)

public void init(){public void init(){

getContentPane().setLayout(new BorderLayout());getContentPane().setLayout(new BorderLayout());

getContentPane().add("Center",area=new getContentPane().add("Center",area=new

JTextArea());JTextArea());

area.setFont(new area.setFont(new

Font("TimesRoman",Font.BOLD,18));Font("TimesRoman",Font.BOLD,18));

area.setText("Hola a todos!");area.setText("Hola a todos!");

getContentPane().add("South",campo = new getContentPane().add("South",campo = new

JTextField());JTextField());

campo.addActionListener(this);campo.addActionListener(this);

}}

Page 16: Programación Orientada a Objetos - Departamento de … ·  · 2014-12-171 Programación Orientada a Objetos GUI en JAVA Angela C. Angela C. Carrillo Ramos Carrillo Ramos Manejo

16

Ejemplo 2 (Swing)Ejemplo 2 (Swing)

public void actionPerformed(ActionEvent e){public void actionPerformed(ActionEvent e){

area.append(campo.getText() + 'area.append(campo.getText() + '\\n');n');

campo.setText("");campo.setText("");

}}

}}

Ejemplo 3Ejemplo 3

import java.awt.*;import java.awt.*;

import java.applet.*;import java.applet.*;

import java.awt.event.*;import java.awt.event.*;

public class ListaProgramas extends Applet{public class ListaProgramas extends Applet{

public void init(){public void init(){

String [] items = String [] items = {“Pregrado”,”Magister”,”Especialización”};{“Pregrado”,”Magister”,”Especialización”};

add(new ListaSeleccion(items));add(new ListaSeleccion(items));

}}

}}

Page 17: Programación Orientada a Objetos - Departamento de … ·  · 2014-12-171 Programación Orientada a Objetos GUI en JAVA Angela C. Angela C. Carrillo Ramos Carrillo Ramos Manejo

17

Ejemplo 3Ejemplo 3

class ListaSeleccion extends Container implements class ListaSeleccion extends Container implements ActionListener{ActionListener{

List lista;List lista;

TextField texto;TextField texto;

ListaSeleccion (String [] items){ListaSeleccion (String [] items){

lista = new List(2);lista = new List(2);

for(int i=0; i<items.length;i++)for(int i=0; i<items.length;i++)

lista.addItem(items [i]);lista.addItem(items [i]);

texto = new TextField();texto = new TextField();

texto.addActionListener(this);texto.addActionListener(this);

setLayout (new BorderLayout());setLayout (new BorderLayout());

add(“Center”, lista);add(“Center”, lista);

add(“South”,texto);add(“South”,texto);

}}

Ejemplo 3Ejemplo 3

public void actionPerformed(ActionEvent e){public void actionPerformed(ActionEvent e){

String busqueda = texto.getText();String busqueda = texto.getText();

for (int i=0; i < lista.getItemCount(); i++)for (int i=0; i < lista.getItemCount(); i++)

if (lista.getItem(i).equals(busqueda){if (lista.getItem(i).equals(busqueda){

lista.select(i);lista.select(i);

lista.makeVisible(i);lista.makeVisible(i);

break;break;

}}

texto.setText(“”);texto.setText(“”);

}}

}}

Page 18: Programación Orientada a Objetos - Departamento de … ·  · 2014-12-171 Programación Orientada a Objetos GUI en JAVA Angela C. Angela C. Carrillo Ramos Carrillo Ramos Manejo

18

Ejemplo TokenizadorEjemplo Tokenizador

TokenizadorTokenizador:: ProcesaProcesa unauna oraciónoración recibidarecibidayy lala descomponedescompone enen palabras,palabras, indicandoindicando elelnúmeronúmero dede vecesveces queque sese repiterepite cadacada unauna dedelaslas palabraspalabras

SiSi lala oraciónoración eses:: LaLa casacasa dede lala lomaloma

ElEl resultadoresultado eses::

LaLa 22

CasaCasa 11

DeDe 11

LomaLoma 11

Ejemplo Tokenizador (AWT)Ejemplo Tokenizador (AWT)

import java.awt.*;import java.awt.*;

import java.awt.event.*;import java.awt.event.*;

import java.awt.Toolkit;import java.awt.Toolkit;

import java.io.*;import java.io.*;

public class AppletEjemplo extends java.applet.Applet {public class AppletEjemplo extends java.applet.Applet {

/* /* ----------------------------------------------------------------------------------------------------------------

* Atributos de la clase* Atributos de la clase

* * ---------------------------------------------------------------------------------------------------------------- */*/

Tokenizador procesador = new Tokenizador(); Tokenizador procesador = new Tokenizador();

// Tokenizador para descomponer una oración en // Tokenizador para descomponer una oración en

palabraspalabras

Page 19: Programación Orientada a Objetos - Departamento de … ·  · 2014-12-171 Programación Orientada a Objetos GUI en JAVA Angela C. Angela C. Carrillo Ramos Carrillo Ramos Manejo

19

Ejemplo Tokenizador (AWT)Ejemplo Tokenizador (AWT)

// Componentes para la interfaz// Componentes para la interfaz

// Entrada// Entrada

TextField oracion = new TextField (80); TextField oracion = new TextField (80); // Campo de texto para leer la // Campo de texto para leer la

oraciónoración

// Salida// Salida

TextArea resultado = new TextArea(5,80); TextArea resultado = new TextArea(5,80); //Area de texto para mostrar //Area de texto para mostrar

resultadosresultados

// Botones // Botones

Button procesar = new Button("Procesar"); // Button procesar = new Button("Procesar"); // Botón para descomponer la Botón para descomponer la

oraciónoración

Button limpiar = new Button("Limpiar"); Button limpiar = new Button("Limpiar"); // Boton para limpiar los campos// Boton para limpiar los campos

Button salir = new Button("Salir"); Button salir = new Button("Salir"); // Boton para terminar el programa// Boton para terminar el programa

public void init() {public void init() {

////--------------------------------------------------------------------------------------------------------------------------------------------

// Pinta la interfaz del applet// Pinta la interfaz del applet

////--------------------------------------------------------------------------------------------------------------------------------------------

// PRE: True// PRE: True

// POST: True// POST: True

////--------------------------------------------------------------------------------------------------------------------------------------------

Ejemplo Tokenizador (AWT)Ejemplo Tokenizador (AWT)

setLayout(new FlowLayout());setLayout(new FlowLayout());

// Mostrar los campos para leer la oración.// Mostrar los campos para leer la oración.

Panel panelOracion = new Panel();Panel panelOracion = new Panel();

panelOracion.setLayout(new GridLayout(2,1));panelOracion.setLayout(new GridLayout(2,1));

Label labelOracion = new Label("Escriba la oración Label labelOracion = new Label("Escriba la oración

a procesar.");a procesar.");

panelOracion.add(labelOracion);panelOracion.add(labelOracion);

panelOracion.add(oracion);panelOracion.add(oracion);

add(panelOracion);add(panelOracion);

Page 20: Programación Orientada a Objetos - Departamento de … ·  · 2014-12-171 Programación Orientada a Objetos GUI en JAVA Angela C. Angela C. Carrillo Ramos Carrillo Ramos Manejo

20

Ejemplo Tokenizador (AWT)Ejemplo Tokenizador (AWT)

// Mostrar los campos para mostrar los resultados.// Mostrar los campos para mostrar los resultados.

Panel panelResultado = new Panel();Panel panelResultado = new Panel();

panelResultado.setLayout(new GridLayout(2,1));panelResultado.setLayout(new GridLayout(2,1));

Label labelResultado = new Label("El resultado es:");Label labelResultado = new Label("El resultado es:");

panelResultado.add(labelResultado);panelResultado.add(labelResultado);

panelResultado.add(resultado);panelResultado.add(resultado);

add(panelResultado);add(panelResultado);

// Mostrar Botones// Mostrar Botones

Panel panelBotones = new Panel();Panel panelBotones = new Panel();

panelBotones.setLayout(new FlowLayout());panelBotones.setLayout(new FlowLayout());

panelBotones.add(procesar);panelBotones.add(procesar);

panelBotones.add(limpiar);panelBotones.add(limpiar);

panelBotones.add(salir);panelBotones.add(salir);

add(panelBotones);add(panelBotones);

Ejemplo Tokenizador (AWT)Ejemplo Tokenizador (AWT)

////-- Asociar comportamiento a los eventos Asociar comportamiento a los eventos ------------------------------------------------

procesar.addActionListener(new ActionListener() {procesar.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {public void actionPerformed(ActionEvent e) {

ProcesarOracion();ProcesarOracion();

} }

});});

limpiar.addActionListener(new ActionListener() {limpiar.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {public void actionPerformed(ActionEvent e) {

LimpiarCampos();LimpiarCampos();

} }

});});

salir.addActionListener(new ActionListener() {salir.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {public void actionPerformed(ActionEvent e) {

System.exit(0);System.exit(0);

} }

});});

}}

Page 21: Programación Orientada a Objetos - Departamento de … ·  · 2014-12-171 Programación Orientada a Objetos GUI en JAVA Angela C. Angela C. Carrillo Ramos Carrillo Ramos Manejo

21

Ejemplo Tokenizador (AWT)Ejemplo Tokenizador (AWT)

public void ProcesarOracion() {public void ProcesarOracion() {

////------------------------------------------------------------------------------------------------------------------------------------------

--

// Procesa la oración que está en el campo de texto // Procesa la oración que está en el campo de texto

"oracion""oracion"

////------------------------------------------------------------------------------------------------------------------------------------------

--

// PRE: True// PRE: True

// POST: True// POST: True

////------------------------------------------------------------------------------------------------------------------------------------------

--

// Procesar la oración y mostrar resultados// Procesar la oración y mostrar resultados

procesador.Procesar(oracion.getText());procesador.Procesar(oracion.getText());

procesador.GenerarResultados(resultado);procesador.GenerarResultados(resultado);

}}

Ejemplo Tokenizador (AWT)Ejemplo Tokenizador (AWT)

public void LimpiarCampos() {public void LimpiarCampos() {

////------------------------------------------------------------------------------------------------------------------------------------------

--

// Limpia los campos de entrada y salida// Limpia los campos de entrada y salida

////------------------------------------------------------------------------------------------------------------------------------------------

--

// PRE: True// PRE: True

// POST: True// POST: True

////------------------------------------------------------------------------------------------------------------------------------------------

--

// Limpiar los campos// Limpiar los campos

oracion.setText("");oracion.setText("");

resultado.setText(""); resultado.setText("");

}}

}}

Page 22: Programación Orientada a Objetos - Departamento de … ·  · 2014-12-171 Programación Orientada a Objetos GUI en JAVA Angela C. Angela C. Carrillo Ramos Carrillo Ramos Manejo

22

Ejemplo Tokenizador (Swing)Ejemplo Tokenizador (Swing)

import java.awt.*;import java.awt.*;

import java.awt.event.*;import java.awt.event.*;

import javax.swing.*;import javax.swing.*;

import java.io.*;import java.io.*;

public class AppletEjemplo extends JApplet {public class AppletEjemplo extends JApplet {

// Atributos de la clase// Atributos de la clase

Tokenizador procesador = new Tokenizador(); Tokenizador procesador = new Tokenizador();

// Tokenizador para descomponer una oración en // Tokenizador para descomponer una oración en palabraspalabras

Ejemplos SwingEjemplos Swing

// Componentes para la interfaz// Componentes para la interfaz

// Entrada// Entrada

JTextField oracion = new JTextField (40); // Campo de texto JTextField oracion = new JTextField (40); // Campo de texto para leer la oraciónpara leer la oración

// Salida// Salida

JTextArea resultado = new JTextArea(5,40); //Area de texto JTextArea resultado = new JTextArea(5,40); //Area de texto para mostrar resultadospara mostrar resultados

// Botones // Botones

JButton procesar = new JButton("Procesar"); // Botón para JButton procesar = new JButton("Procesar"); // Botón para partir la oraciónpartir la oración

JButton limpiar = new JButton("Limpiar"); // Boton para limpiar JButton limpiar = new JButton("Limpiar"); // Boton para limpiar los camposlos campos

JButton salir = new JButton("Salir"); // Boton para terminar el JButton salir = new JButton("Salir"); // Boton para terminar el programaprograma

Page 23: Programación Orientada a Objetos - Departamento de … ·  · 2014-12-171 Programación Orientada a Objetos GUI en JAVA Angela C. Angela C. Carrillo Ramos Carrillo Ramos Manejo

23

Ejemplo Tokenizador (Swing)Ejemplo Tokenizador (Swing)

public void init() {public void init() {

getContentPane().setLayout(new FlowLayout());getContentPane().setLayout(new FlowLayout());

// Mostrar los campos para leer la oración.// Mostrar los campos para leer la oración.

JPanel panelOracion = new JPanel();JPanel panelOracion = new JPanel();

panelOracion.setLayout(new GridLayout(2,1));panelOracion.setLayout(new GridLayout(2,1));

JLabel labelOracion = new JLabelJLabel labelOracion = new JLabel("Escriba la oración ("Escriba la oración

a procesar.");a procesar.");

panelOracion.add(labelOracion);panelOracion.add(labelOracion);

panelOracion.add(oracion);panelOracion.add(oracion);

getContentPane().add(panelOracion);getContentPane().add(panelOracion);

Ejemplo Tokenizador (Swing)Ejemplo Tokenizador (Swing)

// Mostrar los campos para mostrar los resultados.// Mostrar los campos para mostrar los resultados.

JPanel panelResultado = new JPanel();JPanel panelResultado = new JPanel();

panelResultado.setLayout(new GridLayout(2,1));panelResultado.setLayout(new GridLayout(2,1));

JLabel labelResultado = new JLabel("El resultado es:");JLabel labelResultado = new JLabel("El resultado es:");

panelResultado.add(labelResultado);panelResultado.add(labelResultado);

resultado.setLineWrap(true); /* para cortar las líneas de resultado.setLineWrap(true); /* para cortar las líneas de acuerdo al tamaño del área de texto */acuerdo al tamaño del área de texto */

panelResultado.add(new JScrollPane(resultado));panelResultado.add(new JScrollPane(resultado));

//El área de texto tiene un Scroll. Se debe crear un panel //El área de texto tiene un Scroll. Se debe crear un panel que permita esto y adicionar a dicho panel el área de que permita esto y adicionar a dicho panel el área de texto.texto.

getContentPane().add(panelResultado);getContentPane().add(panelResultado);

Page 24: Programación Orientada a Objetos - Departamento de … ·  · 2014-12-171 Programación Orientada a Objetos GUI en JAVA Angela C. Angela C. Carrillo Ramos Carrillo Ramos Manejo

24

Ejemplos SwingEjemplos Swing

// Mostrar Botones// Mostrar Botones

JPanel panelBotones = new JPanel();JPanel panelBotones = new JPanel();

panelBotones.setLayout(new FlowLayout());panelBotones.setLayout(new FlowLayout());

panelBotones.add(procesar);panelBotones.add(procesar);

panelBotones.add(limpiar);panelBotones.add(limpiar);

panelBotones.add(salir);panelBotones.add(salir);

getContentPane().add(panelBotones);getContentPane().add(panelBotones);

////-- Asociar comportamiento a los eventos Asociar comportamiento a los eventos ------------------------------------------------

procesar.addActionListener(new ActionListener() {procesar.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {public void actionPerformed(ActionEvent e) {

ProcesarOracion();ProcesarOracion();

} }

});});

Ejemplo Tokenizador (Swing)Ejemplo Tokenizador (Swing)

limpiar.addActionListener(new ActionListener() {limpiar.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {public void actionPerformed(ActionEvent e) {

LimpiarCampos();LimpiarCampos();

} }

});});

salir.addActionListener(new ActionListener() {salir.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {public void actionPerformed(ActionEvent e) {

System.exit(0);System.exit(0);

} }

});});

} }

Page 25: Programación Orientada a Objetos - Departamento de … ·  · 2014-12-171 Programación Orientada a Objetos GUI en JAVA Angela C. Angela C. Carrillo Ramos Carrillo Ramos Manejo

25

Ejemplo Tokenizador (Swing)Ejemplo Tokenizador (Swing)

public void ProcesarOracion() {public void ProcesarOracion() {

////--------------------------------------------------------------------------------------------------------------------------------------------

// Procesa la oración que está en el campo de texto // Procesa la oración que está en el campo de texto "oracion""oracion"

////--------------------------------------------------------------------------------------------------------------------------------------------

// PRE: True// PRE: True

// POST: True// POST: True

////--------------------------------------------------------------------------------------------------------------------------------------------

// Procesar la oración y mostrar resultados// Procesar la oración y mostrar resultados

procesador.Procesar(oracion.getText());procesador.Procesar(oracion.getText());

procesador.GenerarResultados(resultado);procesador.GenerarResultados(resultado);

}}

Ejemplo Tokenizador (Swing)Ejemplo Tokenizador (Swing)

public void LimpiarCampos() {public void LimpiarCampos() {

////--------------------------------------------------------------------------------------------------------------------------------------------

// Limpia los campos de entrada y salida// Limpia los campos de entrada y salida

////--------------------------------------------------------------------------------------------------------------------------------------------

// PRE: True// PRE: True

// POST: True// POST: True

////--------------------------------------------------------------------------------------------------------------------------------------------

// Limpiar los campos// Limpiar los campos

oracion.setText("");oracion.setText("");

resultado.setText(""); resultado.setText("");

}}

}}

Page 26: Programación Orientada a Objetos - Departamento de … ·  · 2014-12-171 Programación Orientada a Objetos GUI en JAVA Angela C. Angela C. Carrillo Ramos Carrillo Ramos Manejo

26

Ejemplo Tokenizador (Swing)Ejemplo Tokenizador (Swing)

public void GenerarResultados(JTextArea area) {public void GenerarResultados(JTextArea area) {

int i;int i;

Palabra p;Palabra p;

area.setText("");area.setText("");

for ( i=0; i<palabras.size(); i++ ) {for ( i=0; i<palabras.size(); i++ ) {

p=(Palabra)palabras.elementAt(i);p=(Palabra)palabras.elementAt(i);

area.append(p.GetPalabra() + "area.append(p.GetPalabra() + "\\t" +t" +

p.GetRepeticiones() + "p.GetRepeticiones() + "\\n");n");

}}

}}