Upload
docong
View
220
Download
2
Embed Size (px)
Citation preview
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ódigo</A>)<BR>(<A HREF="CambioMoneda.java">Có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");
}}
}}