programación orientada a objetos - departamento de … ·  · 2014-12-171 programación orientada...

Post on 10-Apr-2018

220 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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..

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

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

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

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

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

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

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

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

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>

}}

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);

}}

}}

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);

}}

}}

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;

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(“”);

}}

}}

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);

}}

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));

}}

}}

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(“”);

}}

}}

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

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);

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);

} }

});});

}}

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("");

}}

}}

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

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);

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);

} }

});});

} }

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("");

}}

}}

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");

}}

}}

top related