0% encontró este documento útil (0 votos)
11 vistas86 páginas

Curso Java: Objetos y GUI en Swing

El curso 'Manos a la Obra' tiene como objetivo enseñar los conceptos básicos del lenguaje de programación Java a través de ejercicios prácticos en NetBeans, con una duración de 48 horas. Se abordan temas como UML, patrones objeto-relacionales, y la construcción de aplicaciones utilizando Swing. Además, se exploran relaciones entre objetos, herencia, y la gestión de eventos en aplicaciones GUI.

Cargado por

reycitochopper
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
11 vistas86 páginas

Curso Java: Objetos y GUI en Swing

El curso 'Manos a la Obra' tiene como objetivo enseñar los conceptos básicos del lenguaje de programación Java a través de ejercicios prácticos en NetBeans, con una duración de 48 horas. Se abordan temas como UML, patrones objeto-relacionales, y la construcción de aplicaciones utilizando Swing. Además, se exploran relaciones entre objetos, herencia, y la gestión de eventos en aplicaciones GUI.

Cargado por

reycitochopper
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Curso Manos a la Obra

Objetos: [Link] [Link] Patrones Objeto-relacionales: [Link] SWING: [Link] es/swing/[Link] Java SE 7 [Link]

Objetivo:
Dar a conocer a los participantes los conceptos bsicos del lenguaje de programacin JAVA, mediante la realizacin de ejercicios prcticos, utilizando NetBeans

Duracin:
48 hrs

Horario:
9 am 1 pm

Recesos:
11 am - 10 mins.

1. UML / JAVA
Implementacin en JAVA de relaciones entre objetos Herencia, Composicin, Agregacin, Relacin, Uso

2. Patrones estructurales objeto-relacionales


Mapeo en BD de clases Identity Field, Foreign Key Mapping, Association Table Mapping,

Embedded Value, Serialized LOB, Single Table Inheritance, Class Table Inheritance, Concrete Table Inheritance

3. Construyendo aplicaciones ([Link])


Qu es? / Qu incluye? Componentes de Swing Hola mundo manual/NetBeans Tipos de Layout Clases destacadas JPanel, JOptionPane, JMenu Eventos Consideraciones

Java Intermedio

Implementacin en Java de relaciones entre objetos


Uso Asociacin Agregacin Composicin Herencia

La

clase B necesita de un objeto de la clase A para llevar a cabo una funcionalidad En un mtodo de B, se crea un objeto auxiliar de A En un mtodo de B, aparece un objeto de A como parmetro

public class Cuenta { public long numero; private double saldo; public double interesAnual; public Cliente titular; public int retirar(double cantidad){ aux = new FileOutputStream(); //utilizar aux return 0; } public int depositar(double cantidad){ aux = new FileOutputStream(); //utilizar aux return 0; } }

Al menos un atributo de la clase B es una referencia a un objeto de la clase A La creacin de B no implica la creacin de A En UML se indican las cardinalidades Se implementa introduciendo referencias a objetos de la clase destino como atributos de la clase origen

public class Cuenta { public long numero; private double saldo; public double interesAnual; public Cliente titular; . . . public Cuenta(double s, Cliente t [Link] = s; [Link] = t; } . . . }

){

Normalmente la conexin entre los objetos se realiza recibiendo la referencia de uno de ellos en el constructor. Cuando la relacin es unidireccional, el objeto como atributo va en el lado de inicio de la flecha

public class Cliente { public String nombre; public String apellidoPaterno; public String apellidoMaterno; public String direccion; public String localidad; public date fechaNacimiento; public Cuenta[] misCuentas; private TarjetaCredito miTarjeta; : . public void setMiTarjeta( TarjetaCredito tc ){ miTarjeta = tc ; } : . }

Si

la cardinalidad es superior a 1 ser necesario utilizar un array, List, Vector Cuando la relacin es bidireccional, las cabezas de las flechas son opcionales y cada clase lleva un objeto como atributo de la otra clase.

public class Cliente { public String nombre; public String apellidoPaterno; public String apellidoMaterno; public String direccion; public String localidad; public date fechaNacimiento; public Cuenta[] misCuentas; private TarjetaCredito miTarjeta; public Cliente(){ //inicia variables con valores default } : . }

La

agregacin es una asociacin que se le aade el matiz semntico de que la clase de donde parte la relacin representa el TODO y las clases relacionadas las PARTES, pero NO TIENEN que existir para que el TODO exista La composicin es una agregacin donde la clase TODO controla la existencia de las clases PARTE, es decir que todas las PARTES SI TIENEN que existir para que exista el TODO
Al inicio TODO construye cada PARTE Al final TODO destruye cada PARTE

No hay implementacin especial, se tratan igual que las asociaciones

public class Aplicacion { private Codigo miCodigo; private BD miBD; public Aplicacion(){ miCodigo = new Codigo(); } public void Aplicacion(BD unaBD){ miCodigo = new Codigo(); setMiBD(unaBD); } public void setMiBD(BD newVal){ miBD = newVal; }

public class Cuenta { public long numero; private double saldo; public double interesAnual; public Cliente titular; public Movimiento[] misMovimientos; public Cuenta(){ misMovimientos = new Movimiento[10]; } . . . }

Permite que una clase obtenga la funcionalidad de otra, aadiendo nuevas caractersticas (atributos) y/o modificando su comportamiento o agregando nuevo comportamiento (mtodos) Se puede utilizar la herencia en diferentes situaciones: Especializacin Extensin Especificacin Construccin

Dado un concepto A y otro concepto B que representa una especializacin de A, entonces puede establecerse una relacin de herencia entre las clases de objetos que representan A y B

Una clase puede servir para extender la funcionalidad de una superclase sin que represente necesariamente un concepto mas especfico

Una superclase puede servir para especificar la funcionalidad mnima de un conjunto de descendientes

Una clase puede construirse a partir de otra, simplemente por que la hija puede aprovechar internamente parte o toda la funcionalidad de la clase padre

Java Intermedio

Guarda un campo ID de la BD en un objeto para mantener identidad entre un objeto en memoria y un registro de la BD

Mapea una asociacin entre objetos a una llave fornea entre tablas

Guarda la asociacin como una tabla con llaves forneas a las tablas correspondientes

Que una clase realice el mape en BD para una clase hija

Mapea un objeto en varios campos de la tabla de otro objeto

Guarda una jerarqua de objetos (grafo) serializndolos en un solo objeto grande (Large Object LOB), el cual lo guarda en BD

Representa una jerarqua de herencia de clases, como una sola tabla que tiene columnas para todos los campos de todas las clases

Representa una jerarqua de herencia de clases con una tabla para cada clase

Representa una jerarqua de herencia de clases con una tabla por clase concreta (no abstractas)

Java Intermedio

Es

un conjunto de clases que soporta una GUI independiente de plataforma Es un paquete parte de la JFC Es la sucesora de la AWT que no trabajaba muy bien y tena algunas dependencias de plataforma que la hacan difcil de utilizar

Widgets

visibles como los son:

Ventanas, Cuadros de texto, Botones, Tablas, Mens, etc


Contenedores

de componentes como:

Applets, Dilogos, Ventanas y Marcos


Clases

de soporte y mtodos de utileras

Basada en MVC
Modelo

guarda los datos usados para definir el componente Vista representa el despliegue visual del componente Controlador se encarga de lidiar con el comportamiento del componente, cuando el usuario interacta

JApplet JButton JCheckBox JColorChooser JComboBox JDialog JFileChooser JFormattedTextField JFrame JLabel JList JMenu JMenuBar JMenuItem JPanel

JPasswordField JPopUpMenu JProgressBar JRadioButton JScrollBar JSlider JSpinner JTable JTextArea JTextField JToggleButton JToolBar JTree JWindow

Contenedores Componentes Manejadores

de distribucin de elementos (Layout Managers)

Estn

hasta arriba en la jerarqua de contencin de la GUI. los componentes de la GUI son agregados a estos contenedores JDialog, JWindow y JApplet son los contenedores de mas alto nivel

Todos

JFrame,

Todos

los componentes de la GUI son derivados de la clase JComponent, por ejemplo JComboBox, JAbstractButton y JTextComponent

Son

responsables de acomodar y/o distribuir los componentes en un contenedor. BorderLayout, FlowLayout, GridLayout son algunos ejemplos de stos. Hay manejadores de Layouts mas complicados que proporcionan mas control sobre la GUI

Se clasifican en tres categoras

Top-level

containers General purpose containers Special purpose containers

La GUI de Swing utiliza dos tipos de clases Clases GUI, que son visuales y descendientes de JComponent, a veces se les llama J Classes Clases no-GUI o no visuales, se refiere a las clases que proveen servicios y funciones vitales para sus complementarias, sin embargo no producen resultados visuales

Se pueden clasificar de manera muy general en: Botones Componentes de texto Componentes de despliegue (no editables) Mens Componentes de despliegue formateado Otros controles

Propiedades comunes de todos Border Background and Foreground color Font Opaque Maximum / Minimum size Alignment Preferred size

Propiedades especficas de JComboBox (p.e.) Maximum row count Model Selected index Selected item Item count Renderer Editable

Su

funcin es determinar el tamao y posicin de un componente dentro de un contenedor. La alternativa a usar Layout Managers es utilizar posiciones absolutas mediante coordenadas de pixeles la desventaja es que no es multiplataforma

Situaciones con las que el Layout Manager debe lidiar: Cambiar de tamao el contenedor Tipos de letra y tamaos diversos usados por el usuario/S.O Requerimientos internacionales de acomodo de texto por la regin (izq-der / der-izq, vertical)

BorderLayout FlowLayout BoxLayout CardLayout GridLayout GridBagLayout

public class HolaMundo { public static void main(String[] args) { JFrame frame = new JFrame("HelloWorldSwing"); JLabel label = new JLabel("Hello World"); [Link]().add(label); [Link](); [Link](true); } }

Agregar un cuadro de dilogo para capturar informacin de un cliente


Nombre Direccin Ciudad Estado

SWING

los utiliza para comunicarse entre componentes Un evento es slo una llamada a un mtodo en el objeto receptor, por el objeto emisor lo que se transmite es un objeto Event Un objeto se registra para recibir eventos

En

SWING los eventos son multicast, es decir de un emisor a muchos receptores posibles El orden sin embargo, no es posible definirlo Los eventos son inmutables al receptor Se pueden encolar como los eventos del teclado Se pueden comprimir varios eventos en uno solo, como en los movimientos del mouse

Un

event source es el generador de un evento, por ejemplo el clic del mouse sobre un componente JButton, genera una instancia del evento ActionEvent, que contiene informacin de lo que acaba de suceder.

Es

el mtodo que recibe el objeto Event, lo descifra y procesa la interaccin del usuario.

Los

eventos son enviados al componente desde el cual fueron originados, pero es responsabilidad del componente propagar el evento a una o mas clases registradas, llamadas listeners. Los listeners contienen manejadores de eventos para recibir y procesar el evento. De esta forma pueden ser un objeto separado del componente

Los

objetos event se reportan solo a listeners registrados Cada event tiene una interface listener correspondiente que indica que mtodos deben estar definidos en la clase adecuada para recibir ese tipo de event Los objetos event de los componentes que no tienen objeto listener registrado NO son propagados

Muchas de las clases de los eventos residen en el paquete AWT, sin embargo en algunos otros lugares de la API existen otros.

Por

cada categora de eventos, una interface debe ser implementada por la clase de objeto que quiere recibir el evento. Esta interface exige que uno o mas mtodos sean definidos tambin.

Event Type ActionEvent AdjustmentEvent ItemEvent TextEvent ComponentEvent ContainerEvent FocusEvent KeyEvent MouseEvent WindowEvent

Event Source Button, List, MenuItem, TextField Scrollbar Choice, Checkbox, CheckboxMenuItem, List TextArea, TextField Component Container Component Component Component Window

Event Listener interface ActionListener AdjustmentListener ItemListener TextListener ComponentListener ContainerListener FocusListener KeyListener MouseListener, MouseMotionListener WindowListener

Event Listener interface ActionListener AdjustmentListener ItemListener TextListener

Event Listener Methods actionPerformed(ActionEvent evt) adjustmentValueChanged(AjustmentEvent evt) itemStateChanged(ItemEvent evt) textValueChanged(TextEvent evt) componentHidden(ComponentEvent evt), componentMoved(ComponentEvent evt), componentResized(ComponentEvent evt), componentShown(ComponentEvent evt)

ComponentListener

ContainerListener

componentAdded(ContainerEvent evt), componentRemoved(ContainerEvent evt) focusGained(FocusEvent evt), focusLost(FocusEvent evt) keyPressed(KeyEvent evt), keyReleased(KeyEvent evt), keyTyped(KeyEvent evt)

FocusListener KeyListener

Event Listener interface

Event Listener Methods

MouseListener

MouseMotionListener

WindowListener

mouseClicked(MouseEvent evt), mouseEntered(MouseEvent evt), mouseExited(MouseEvent evt), mousePressed(MouseEvent evt), mouseReleased(MouseEvent evt) mouseDragged(MouseEvent evt), mouseMoved(MouseEvent evt) windowActivated(WindowEvent evt), windowClosed(WindowEvent evt), windowClosing(WindowEvent evt), windowDeactivated(WindowEvent evt), windowDeiconified(WindowEvent evt), windowIconified(WindowEvent evt), windowOpened(WindowEvent evt)

El

framework AWT permite la coneccin de varios listeners al mismo componente El mecanismo del listener te permite llamar un mtodo addXxxListener() tantas veces como se necesite Y todos los listeners registrados deben llamar su mtodo manejador cuando el evento ocurra El orden en que se ejecutan los mtodos manejadores no est definido.

Es

laborioso implementar todos los mtodos de las interfaces listeners, particularmente MouseListener y WindowsListener. Por conveniencia JAVA provee clases adaptadoras que al heredarlas, nos provee los mtodos ya definidos, pero vacos, y nos permite solo redefinir el mtodo que vamos a ocupar.

Para

la ejecucin de aplicaciones GUI SWING, son necesarios varios hilos de ejecucin: Hilos responsables de ejecutar el cdigo de la aplicacin se les llaman current threads Hilos responsables de manejar los eventos generados por los componentes se les llama dispatch threads Hilos responsables de ejecutar operaciones largas como acceso a recursos compartidos, consultas o disco, se les llama worker threads (SwingWorker Class)

Para

la ejecucin de aplicaciones GUI SWING, son necesarios varios hilos de ejecucin: Hilos responsables de ejecutar el cdigo de la aplicacin se les llaman current threads Hilos responsables de manejar los eventos generados por los componentes se les llama dispatch threads Hilos responsables de ejecutar operaciones largas como acceso a recursos compartidos, consultas o disco, se les llama worker threads

Para

la ejecucin de aplicaciones GUI SWING, son necesarios varios hilos de ejecucin: Hilos responsables de ejecutar el cdigo de la aplicacin se les llaman current threads Hilos responsables de manejar los eventos generados por los componentes se les llama dispatch threads Hilos responsables de ejecutar operaciones largas como acceso a recursos compartidos, consultas o disco, se les llama worker threads

Esta

clase modela un imagen icono Imagen de tamao fijo regularmente pequea que se utiliza para decorar componentes de la GUI GIF, PNG, JPG y BMP son soportados Muchos JComponent aceptan un ImageIcon en su constructor o tienen un setter para l

Esta clase es diferente de otros componentes ya que normalmente el layout manager puede acomodar al componente en cuestin, excepto a JMenu, slo puedes agregar Mens a un Menu Container.
La excepcin a esta regla son los mens pop-up,

que como aparecen flotando no necesitan acomodo por parte del layout manager

Para crear un men: Crear un Objeto JMenuBar y establecerlo como menu container, como un JFrame Crear uno o mas objetos JMenu y agregarlos al objeto JMenuBar Crear uno o mas objetos JMenuItem, y agregarlos al objeto JMenu
El objeto JMenuBar no acepta listeners, todo deber ser manejado por los objetos JMenuItem

Se

pueden activar con el mouse o sin l mediante atajos del teclado Se pueden utilizar con texto o iconos o ambos Pueden tener varios iconos de acuerdo al estado:
defaultIcon, disabledIcon, pressedIcon, selectedIcon, rolloverIcon, disabledSelectedIcon, rolloverSelectedIcon

Botones

de comandos:

JButton
Botones

de alternancia (Toggle):

JRadioButton JCheckBox JToggleButton

Dispara

el evento ActionEvent a todos los listeners registrados

Te

permite escoger ninguno o uno del grupo. Tpicamente se agregan a un GroupButton para asegurar una seleccin mutuamente exclusiva Dispara el evento ItemEvent a los listeners registrados as como ActionEvent, y ambos puedes ser utilizados

Te

permite escoger ninguno o mas de entre el grupo Dispara ItemEvent y ActionEvent Normalmente se utiliza ItemEvent para poder distinguir entre los estados del Item SELECTED y DESELECTED

Normalmente

se usa para proporcionar un men desplegable Soporta seleccin sencilla y mltiple Recibe un array de objetos (tpicamente strings) que son la fuente de los Items desplegados Dispara ItemEvent y ActionEvent Se utiliza getSelectedIndex() para saber el Itemseleccionado Se utiliza getSelectedItem() para obtener el objeto seleccionado

JTextField,

JPasswordField, JFormattedTextField, para desplegar una sola lnea de texto, al igual que los botones disparan ActionEvent JTextArea: Para desplegar mltiples lneas de texto sin formato y editable JEditorPane, JTextPane: Un rea de texto con posibilidad de aplicar formatos y tipos de letra, as como imgenes y componentes embebidos. El primero soporta HTML

También podría gustarte