Está en la página 1de 11

INSTITUTO TECNOLÓGICO DE SAN

ANDRÉS TUXTLA

INGENIERÍA EN SISTEMAS COMPUTACIONALES

MATERIA:
Tópicos Avanzados de Programación

DOCENTE:
MTI. ANGELINA MÁRQUEZ JIMÉNEZ.

GRUPO:

404- A

REPORTE DE PRÁCTICA No. 1

INTEGRANTES:

ANGEL DE JESUS CARMONA COBAXIN


ALEJANDRA DEL CARMEN VICHI ORTIZ

PERIODO:

ENERO – JULIO 2021


INSTITUTO TECNOLÓGICO SUPERIOR DE SAN
ANDRÉS TUXTLA

INGENIERÍA EN SISTEMAS COMPUTACIONALES

REPORTE DE PRÁCTICA TOPICOS AVANZADOS DE PROGRAMACIÓN

PRÁCTICA NO. 1

NOMBRE DE LA PRÁCTICA:

GUI con implementación de listener de teclado

OBJETIVO:

El estudiante desarrollara una GUI que incluya la implementación de listener y


adaptador de mouse, para aprender a utilizar algunos de sus eventos.

FUNDAMENTO TEÓRICO:

La interfaz de usuario es la parte del programa que permite al usuario


interaccionar con él. La API de Java proporciona una biblioteca de clases para el
desarrollo de Interfaces gráficas de usuario (en realidad son dos). La biblioteca
proporciona un conjunto de herramientas para la construcción de interfaces
gráficas que tienen una apariencia y se comportan de forma semejante en todas
las plataformas en las que se ejecuten.

La estructura básica de la biblioteca gira en torno a componentes y contenedores.


Los contenedores contienen componentes y son componentes a su vez, de forma
que los eventos pueden tratarse tanto en contenedores como en componentes. La
API está constituida por clases, interfaces y derivaciones. Component: superclase
de todas las clases de interfaz gráfica.

Al implementar la interface debemos implementar también los métodos que la


componen, veamos cuales son y su funcionamiento básico:
INSTITUTO TECNOLÓGICO SUPERIOR DE SAN
ANDRÉS TUXTLA

INGENIERÍA EN SISTEMAS COMPUTACIONALES

REPORTE DE PRÁCTICA TOPICOS AVANZADOS DE PROGRAMACIÓN

 keyPressed(KeyEvent e): Se ejecuta cuando el usuario presiona una


tecla.
 keyReleased(KeyEvent e): Se ejecuta cuando el usuario libera una tecla
 keyTyped(KeyEvent e): Se ejecuta cuando el usuario presiona una tecla,
pero solo cuando la tecla corresponde a caracteres, teclas especiales
como F1, F2 entre otras no son identificadas.

Por lo regular el uso de estos métodos es muy específico todo depende de lo que
necesitemos ya que el evento de presionar y soltar pasa muy rápido y casi nunca
nos damos cuenta cual evento se ejecutó, estos métodos son usados
básicamente cuando queremos controlar al detalle lo que queremos que suceda si
se hace una u otra acción.

El desarrollo de GUI puede, fácilmente, convertirse en un proceso caótico. La


dinámica del interfaz (Listeners de los eventos de ratón/teclado), están tienen que
tener acceso a las variables de estado y a los componentes para pintar los
resultados.

AWT permite hacer interfaces gráficas mediante artefactos de interacción con el


usuario, como botones, menús, texto, botones para selección, barras de
deslizamiento, ventanas de diálogo, selectores de archivos, etc. Y por supuesto
despliegue gráfico general. La siguiente figura muestra algunos de estos
artefactos de interacción: Estos artefactos de interacción se denominan widgets.

JERARQUIA DE LAS CLASES DE LA GUI


Container: para agrupar componentes.

JComponent: superclase de todos los componentes de Swing que se dibujan


directamente en los lienzos (canvas). Sus subclases son los elementos básicos
INSTITUTO TECNOLÓGICO SUPERIOR DE SAN
ANDRÉS TUXTLA

INGENIERÍA EN SISTEMAS COMPUTACIONALES

REPORTE DE PRÁCTICA TOPICOS AVANZADOS DE PROGRAMACIÓN

de la GUI.

JFrame: ventana que no está contenida en otras ventanas.

JDialog: cuadro de diálogo.

JApplet: subclase de Applet para crear applets tipo Swing.

JPanel: contenedor invisible que mantiene componentes de interfaz y que se


puede anidar, colocándose en otros paneles o en ventanas. También sirve de
lienzo.

Graphics: clase abstracta que proporciona contextos gráficos donde dibujar


cadenas de texto, líneas y otras formas sencillas.

Color: color de los componentes gráficos.

Font: aspecto de los caracteres.

FontMetrics: clase abstracta para propiedades de las fuentes.

Categorías de clases:

 Contenedores:

JFrame, JApplet, JWindow, JDialog

 Componentes intermedios:

JPanel, JScrollPane

 Componentes:

JLabel, JBbutton, JTextField, JTextArea, ...

 Clases de soporte:

Graphics, Color, Font.


INSTITUTO TECNOLÓGICO SUPERIOR DE SAN
ANDRÉS TUXTLA

INGENIERÍA EN SISTEMAS COMPUTACIONALES

REPORTE DE PRÁCTICA TOPICOS AVANZADOS DE PROGRAMACIÓN

JAVA SWING
Swing es una biblioteca de clases que permite crear interfaces gráficas de usuario

en Java. Swing forma parte del paquete estándar, no hace falta importar ningún
fichero adicional en nuestros proyectos. Es una de las API de JFC (Java
Foundation Classes): AWT, Java 2D, Accessibility, Drag and Drop, Swing.

Escrito totalmente en Java. No reemplaza a AWT. Se apoya sobre AWT y añade

JComponents. Utiliza el modelo de eventos de Java 1.1. Elección entre diferentes


aspectos (look & feel). Arquitectura Model-View- Controller (MVC). Nuevos
componentes (árboles, tablas, frames internos, iconos, bordes, tooltips,
beans,etcétera).

MATERIAL Y EQUIPO EMPLEADO:

Equipo: Lenovo Ideapad S340

Procesador: AMD Ryzen 5 - 3500U

Almacenamiento: 8 GB RAM y 256 GB SSD

Arquitectura: 64 bits

DESARROLLO:

import java.awt.*;
INSTITUTO TECNOLÓGICO SUPERIOR DE SAN
ANDRÉS TUXTLA

INGENIERÍA EN SISTEMAS COMPUTACIONALES

REPORTE DE PRÁCTICA TOPICOS AVANZADOS DE PROGRAMACIÓN

import javax.swing.*;
import java.awt.event.*;
public class DemostracionTeclas extends JFrame implements KeyListener{
//nombre de la clase

private String linea1 = "", linea2 = "", linea3 = "";


private JTextArea areaTexto;
//configurar la GUI

public DemostracionTeclas(){
super("Demostracion de eventos de pulsacion de teclas");
areaTexto = new JTextArea(10,15);
areaTexto.setText("Oprima cualquier tecla"); //muestra el mensaje para
que el usuario pueda oprimir cualquiera tecla
areaTexto.setEnabled(false);
areaTexto.setDisabledTextColor(Color.red);
areaTexto.setBackground(Color.yellow);
getContentPane().add(areaTexto);
addKeyListener(this);
setSize(650,400);
setVisible(true);

}
public static void main(String []args){ //método principal
JFrame.setDefaultLookAndFeelDecorated(true);
DemostracionTeclas aplicacion = new DemostracionTeclas();
aplicacion.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //cierre
de la ventana
}
INSTITUTO TECNOLÓGICO SUPERIOR DE SAN
ANDRÉS TUXTLA

INGENIERÍA EN SISTEMAS COMPUTACIONALES

REPORTE DE PRÁCTICA TOPICOS AVANZADOS DE PROGRAMACIÓN

public void keyPressed (KeyEvent evento){ //método que se ejecutara cada


que se presione una tecla

linea1 = "Se oprimio la tecla: "+


evento.getKeyText(evento.getKeyCode());
establecerLineas2y3(evento);
}
public void keyReleased(KeyEvent ev){ //método que se ejecutara cada
que se suelte una tecla

linea1 = "se solto tecla: " + ev.getKeyText(ev.getKeyCode());


establecerLineas2y3 (ev);
}
public void keyTyped(KeyEvent ev){ //método que se ejecutara cada que se
precione una tecla especial

linea1 = "Se escribio la tecla: "+ ev.getKeyChar();


establecerLineas2y3 (ev);
}
private void establecerLineas2y3 (KeyEvent ev){
linea2 = "Esta tecla: "+ (ev.isActionKey()?"":" no ") + "es una tecla de
accion";
String temp = ev.getKeyModifiersText(ev.getModifiers());
linea3 = "Teclas modifcadora oprimidas : "+
(temp.equals("")?"nunguna":temp);
areaTexto.setText(linea1+"\n"+linea2+"\n"+linea3+"\n");

}
}
INSTITUTO TECNOLÓGICO SUPERIOR DE SAN
ANDRÉS TUXTLA

INGENIERÍA EN SISTEMAS COMPUTACIONALES

REPORTE DE PRÁCTICA TOPICOS AVANZADOS DE PROGRAMACIÓN

RESULTADOS:

Al ejecutar el código se
pide al usuario oprimir
cualquier tecla, dado a
que areaTexto.setText
que aparece en el
JTextArea.
En el segundo método de
la interface, que se invoca
cuando el usuario ha
liberado una tecla. En la
línea uno se muestra el
mensaje de que se soltó
una tecla entonces se
vuelve a obtener el
código, este trabajo lo
hace el método
getKeyCode() que es el
que consigue el código de
la letra y el método
getKeyText es el que
traduce dicho código de la
INSTITUTO TECNOLÓGICO SUPERIOR DE SAN
ANDRÉS TUXTLA

INGENIERÍA EN SISTEMAS COMPUTACIONALES

REPORTE DE PRÁCTICA TOPICOS AVANZADOS DE PROGRAMACIÓN

letra. Por último, se


imprime el mensaje
completo de la letra que
se ha soltado.
En KeyReleased lo que
hacemos es validar el
evento cuando se presiona
la tecla Escape para salir
del sistema, al presionar la
tecla se carga el mensaje.
Adicional a esto también
imprimimos en consola
cual es la tecla
presionada, de esta
manera nos damos cuenta
cada espacio, enter, delete
y cualquier tecla que
utilicemos.
INSTITUTO TECNOLÓGICO SUPERIOR DE SAN
ANDRÉS TUXTLA

INGENIERÍA EN SISTEMAS COMPUTACIONALES

REPORTE DE PRÁCTICA TOPICOS AVANZADOS DE PROGRAMACIÓN

CONCLUSIONES

En el presente reporte de práctica 1, se incluye el código fuente de la clase


DemostracionTeclas, en el cual la interfaz y los métodos se ven explicados en
orden para que el lector pueda comprenderlo mejor, asimismo para que cualquier
usuario pueda editar y probar la interfaz. Los métodos keyPressed, keyTyped y
getKeyCode, sirven para ver la interacción del usuario y la interfaz gráfica al
oprimir cualquier tecla. En keyPressed validamos cuando se presionan las
vocales para ir asignando los valores correspondientes al área de texto y a la
variable que las cuenta. Se aprecia que la interfaz gráfica es entendible y
amigable para el usuario.
INSTITUTO TECNOLÓGICO SUPERIOR DE SAN
ANDRÉS TUXTLA

INGENIERÍA EN SISTEMAS COMPUTACIONALES

REPORTE DE PRÁCTICA TOPICOS AVANZADOS DE PROGRAMACIÓN

REFERENCIAS

[1] Aguilar, L. J. (2010). Programación en c/c++ java y UML. México: McGraw Hill.

[2] Ceballos, F. J. (2010). JAVA 2: Curso de programación. Madrid: RA-MA.

[3] Dean, J. (2009). Introducción a la programación con Java. México: McGraw


Hill.

[4] Deitel, D. y. (2010). Java Cómo Programar. México: Prentice Hall

También podría gustarte