Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Qu es Swing? (1)
Swing es la tecnologa propuesta por Java para la
de escritorio capaces de ser ejecutadas en diferentes plataformas (al igual que el propio lenguaje Java).
Swing es parte de Java Foundation Classes (JFC).
2
Qu es Swing? (2)
Paquetes: Swing est implementado en 18 paquetes (packages). Los paquetes ms utilizados son:
javax.swing javax.swing.events
entrada y salida de datos que comparten muchas semejanzas con otras interfaces grficas.
Sin embargo, existen algunas caractersticas que: Contienen ciertas particularidades en Swing, y Son utilizadas por muchos controles de Swing. Por tanto el correcto entendimiento de ellas es
Son los contenedores de ms alto nivel y son la raz de la jerarqua de componentes compuesta por contenedores intermedios y componentes bsicos. Son contenedores que pueden tener otros contenedores intermedios y/o componentes bsicos. Son los controles elementales para entrada y salida de datos a los usuarios finales.
6
JFrame: ventana con ttulo, borde y contenido. JDialog: subventana independiente (cuadro de dilogo).
pertenecer a alguna jerarqua de contenedores (cuya raz ser un top-level container). Cada top-level container tiene un content-pane que contendr todos los componentes visibles.
JPanel: contenedor de componentes. JScrollPane: proporciona barras de desplazamiento alrededor de un componente. JSplitPane: permite al usuario cambiar el tamao relativo de dos componentes. JInternalFrame: ventana dentro de otra ventana.
mtodo setContentPane()
10
interfaz LayoutManager y determina el tamao y posicin de los componentes dentro de un contenedor. Realiza el layout (tamao y ubicacin) automtico de los elementos que se agregan al contenedor al cual el layout manager controla. Existen mltiples formas preexistentes de layout managers as como la posibilidad de no utilizar ningn layout manager (llamado absolute layout). Tambin Ud. puede crearse su propio layout manager o utilizar algunos ms complejos preexistentes.
11
(hints) sobre su tamao y ubicacin, ser el layout manager quien tendr la ltima palabra sobre la ubicacin y tamao final del componente en el contenedor. En la prctica, a los componentes que se les manejar su layout sern JPanel y content-pane Los layout managers ms sencillos son: BorderLayout (por defecto para content-pane y JDialog), FlowLayout (por defecto para JPanel), BoxLayout y GridLayout
12
13
hacia abajo.
14
de los componentes en forma vertical. Su constructor necesita el objeto contenedor y la direccin en que se ordenarn los componentes, pudiendo ser:
15
cuyas celdas son todas del mismo tamao. Su constructor requiere la cantidad de columnas y filas.
16
cuyas celdas pueden ser de diferente tamao. Es uno de los ms complejos de utilizar.
17
programador, si le interesa hacer algo debido a la ocurrencia del evento, debe manejarlo.
Similar al manejo de excepciones, con la diferencia que
evento (un objeto de tipo ActionEvent) conteniendo, por ejemplo, cuantos clics se hicieron. El programador debe codificar un mtodo (llamado manejador del evento) con el cdigo a ejecutar. Ese mtodo ser invocado por Swing enviando ese objeto como parmetro.
19
basado en el patrn de diseo Observer. Los componentes grficos de interaccin con el usuario como campos de texto, botones, menes y dems componentes juegan el papel de subjects, mientras que las clases que implementan las interfaces de control de eventos juegan el papel de observers.
21
event listeners interesado1 (Deposito) evento (ActionEvent) event object interesado2 (Deposito)
2) dispara
1. 2. 3. 4.
Colocarlo en la clase Main (Versin 1). Colocarlo en el formulario (Versin 2). Colocarlo en una inner class (Versin 3). Colocarlo en una clase independiente (que no sea ni Program ni el formulario). Por ejemplo: la clase Deposito mencionada anteriormente.
25
AbstractB utton
JB ut ton
JMenuItem
JT oggle Button
JMenu
JR adioB uttonMenuIt em
(*) http://java.sun.com/docs/books/tutorial/uiswing/components/button.html
26
27
colecciones de elementos que sern mostrados por uno o varios componentes Swing (ej: una lista).
El uso de models permite separar la nocin de
mostrar una coleccin de elementos (ej: mediante un JList) de la coleccin de elementos en s (el model).
28
un lado, una coleccin con elementos a ser mostrados, y por otro, los controles Swing que mostrarn esos datos.
Tpicamente se utilizan con los siguientes
componentes Swing:
JComboBox (lista desplegable) JList (lista) JTable (tabla)
29
AbstractB utton
JB ut ton
JMenuItem
JT oggle Button
JMenu
JR adioB uttonMenuIt em
30
31
un sub-men (JMenu).
un separador (JSeparator).
32
de ventanas.
Un internal frame es un objeto instancia de la clase
JInternalFrame.
Para ser desplegado debe ser agregado a un desktop
33
34
JDesktopPane.
Hacer visible al internal frame (pack() y setVisible(boolean)) y asignarle un tamao (setSize(int,int)) y ubicacin (setLocation(int,int)).
35
and feels, cada uno brindando una apariencia diferente para cada uno de los controles Swing.
Cada plataforma (sistema operativo) provee un look and
la clase UIManager (esta clase maneja el look&feel, y es consultada por todos los componentes al momento de desplegarse):
void IUManager.setLookAndFeel(...)
establecer:
UIManager.getCrossPlatformLookAndFeelClassName() IUManager.getSystemLookAndFeelClassName()
o
37
look&feel a partir del nombre de dicha clase, sta podra no existir, con lo que el mtodo setLookAndFeel() podr lanzar una ClassNotFoundException que debe ser controlada.
Existen otras 4 excepciones que este mtodo puede
lanzar, por lo que suele ser suficiente (y aconsejable) capturar una sola excepcin de tipo Exception salvo que al programador le interese controlar alguno de los 5 tipos de excepciones en particular.
38
Ejemplos (1)
39
Ejemplos (2)
Este ejemplo muestra:
40
Ejemplos (3)
41
Ejemplos (4)
Este segundo ejemplo muestra:
42
Ejemplos (5)
Elementos extra (opcionales):
43
Referencias
Java 6 SE API:
http://java.sun.com/javase/6/docs/api/
Swing Tutorial:
http://java.sun.com/docs/books/tutorial/uiswing/TOC.html
44