Você está na página 1de 8

P

g
i
n
a
1

Interfaces
Una interfaz declara, pero no implementa, las acciones mnimas que poseer un
Objeto creado a partir de una clase que la implemente. Es responsabilidad de las
Clases que implementan la interfaz definir cmo se llevan a cabo todas y cada una
de las acciones declaradas por la interfaz.

Los paquetes java.awt y javax.swing
Java.awt
Component
Superclase abstracta de varios componentes del AWT. Tiene un mtodo
public Graphics getGraphics() para obtener el contexto grfico sobre el que
dibujar figuras o componentes. Declara ms de 200 mtodos
Container
Subclase de la anterior que puede contener otros componentes. Tiene un
mtodo que nos permite aadir un componente: Component
add(Component comp)
Color
Clase que representa un color
Graphics
Encapsula el contexto grfico que es utilizado por varios mtodos para
mostrar la salida en una ventana. Tiene adems una serie de mtodos para
dibujar figuras
Point
Clase para representar las coordenadas cartesianas x e y
JPanel
Representa un rea rectangular sobre la que la aplicacin puede dibujar. La
aplicacin debe crear una clase que extienda a JPanel y sobreescribir el
mtodo void paintComponent(Graphics g) para obtener la funcionalidad que
se desee. Es una subclase de Component

javax.swing
Proporciona una serie de clases e interfaces que amplan la funcionalidad del
anterior. Estn escritos en Java y son independientes de la plataforma. Se utiliza el

P

g
i
n
a
2

trmino ligthweight para describir a estos elementos. La clase de este paquete que
vamos a utilizar es:
JFrame
Clase que representa una ventana. El mtodo Container.getContentPane() debe
utilizarse para obtener un objeto del tipo Container que se utilizar para aadir
componentes a la ventana


Componentes y contenedores

Componentes
Clase Descripcin
Button Botones con un texto (Ej: Aceptar)
Canvas Rectngulo para dibujar
Choice Lista desplegable (ej: lista de pases para elegir)
CheckBox Casillas cuadradas para marcar (como en un test)
Label Etiqueta: caracteres que se muestran en un contenedor
List Lista, similar a Choice pero constantemente desplegada
Scrollbar Barra de desplazamiento
TextField Campo de edicin que puede utilizar el usuario para introducir
datos
TextArea Similar a TextField pero permite introducir texto que ocupe
varias lneas

Contenedores
Clase Descripcin
Panel Contenedor bsico que necesita formar parte de una ventana (o
pgina)
Applet Panel preparado para formar parte de una pgina HTML
Window Una ventana sin ttulo ni casillas para minimizar,cerrar,etc.
Frame Una ventana normal, con ttulo
Dialog Ventana que se muestra sobre la ventana actual (Ej.: la tpica
ventana para preguntar "Est seguro de ...." y dos botones de
Aceptar y Cancelar)
FileDialog Similar al anterior, pero especializado para la seleccin de
ficheros (se suele utilizar en las opciones de "Abrir" o "Grabar
como" )


P

g
i
n
a
3


Frame
La clase Frame representa en AWT una ventana tal y como estamos acostumbrados
a verlas en un entorno grfico. Dado que el resto de los componentes formarn
parte de una ventana, parece lgico que comencemos por ella.

Tamao
El tamao se fija con el mtodo void setSize(int, int) y la posicin con
setLocation(int,int). Ambos pertenecen a la clase Component. Ejemplo:

ventana.setSize(300, 100);
ventana.setLocation(100,50);

Estilos
Hablaremos de los "estilos" ms adelante. De momento baste con decir que el
mtodo setLayout(Layout) determina el estilo de la ventana, es decir cmo se
distribuyen los componentes en la ventana. Por ejemplo:

FlowLayout estilo = new FlowLayout();
ventana.setLayout(estilo);

har que los componentes se siten uno al lado del otro, de izquierda a derecha y
de arriba a abajo.

Aadir componentes
En este paso se aaden los componentes que se desee incluir en la ventana. Para
eso se utiliza el mtodo void add(Component) heredado de la clase Container. Por
ejemplo:

Label etiq = new Label("Te estoy mirando...");
ventana.add(etiq);

Mostrar ventana
Esto se hace con el mtodo setVisible heredado de Component.

ventana.setVisible(true);



P

g
i
n
a
4


Observaciones
En swing el componente correspondiente se llama JFrame, y permite indicar que se
quiere salir de la aplicacin al cerrar la ventana sin necesidad de escribir un objeto
escucha, simplemente con:

JFrame ventana = new ...
....
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);



Label
La clase Label(etiqueta) se utiliza para mostrar Strings en un componente.

Constructoras
Tiene 3 constructoras:
Label(): La constructora por defecto, crea una etiqueta con un String vaco.
Label(String etiq): Etiq es el String a mostrar.
Label(String etiq, int alineamiento): Permite indicar si la etiqueta se
mostrar en el espacio reservado para ella en el component alineada a la
izquierda (constante Label.LEFT), a la derecha (Label.RIGHT) o centrada
(Label.CENTER).
Mtodos
Aparte de los mtodos heredados de Object y Component, esta clase tiene dos
mtodos importantes:
setText(String etiq): Para modificar el contenido de la etiqueta.
String getText(): Devuelve el contenido actual de la etiqueta.

Button
Este componente es bsico; sobre el suelen recaer las acciones del usuario y a
menudo en sus escuchas asociadas se realiza la parte ms complicada del
programa. La filosofa que se sigue es vlida para otros componentes que no
discutimos aqu, como los mens. Constructoras
Tiene 2 constructoras:

P

g
i
n
a
5

Button(): Botn con un mensaje vaco.
Button(String etiq): Etiq es el String a mostrar como mensaje.
Mtodos
Algunos de los mtodos ms importantes, adems de los heredados de
Component, son:
void setLabel(String label) : Cambia la etiqueta del botn.
String getLabel() : Devuelve la etiqueta actual.
void setActionCommand(String command): Asocia un String al botn. Este
String no se mostrar por pantalla, sino que se utilizar como identificador
del botn.
void addActionListener(ActionListener l): Para aadir una escucha que pueda
reaccionar cuando se pulsa el botn.


Textfield

Este componente se utiliza comnmente para leer datos de teclado.

Constructoras
Para TextField:
TextField(): Constructora por defecto conteniendo la cadena vaca y con 0
columnas.
TextField(int columnas): Contenido vaco pero longitud prefijada inicial.
TextField(String texto) Campo de texto con un valor inicial.
TextField(String texto, int columnas): Las dos anteriores combinadas.
Mtodos
La clase TextField coincide con las clases anteriores en la definicin de los mtodos
setText(String cadena) y String getText(). Algunos otros mtodos de inters:
setEchoChar(Char c): Indica el carcter que aparece cuando se introduce un
valor y se usa para introducir palabras clave. setEchoChar(0) hace que el
carcter que aparece sea el carcter pulsado.
setEditable(boolean): Si se pone a false no se podr escribir sobre el campo
de edicin.

P

g
i
n
a
6

int getSelectionStart(), int getSelectionEnd(): Para saber el trozo de texto que
ha sido seleccionado por el usuario. Muy til para las acciones de "Copiar",
"Cortar" y "Pegar".
void setSelectionStart(int inicio), void setSelectionEnd(int fin): Para marcar
una porcin de texto. En realidad setSelectionEnd(int fin) indica una posicin
ms all de la ltima a marcar. Por ejemplo, para marcar los caracteres 2,3 y
4 (tercer, cuarto y quinto carcter) se utilizara:
texto.setSelectionStart(2);
texto.setSelectionEnd(5);

Eventos
En cuanto a los eventos, la diferencia principal con la clase Button es que el mtodo
ActionEvent de la clase escucha se utiliza cuando se pulsa Enter. Tambin se puede
controlar cual es la tecla pulsada, como veremos al hablar de los eventos de
teclado, pero estos eventos no son especficos de la clase TextField sino comunes a
todos los Component.

ActionListener

Esta es una interfaz y por tal se debe de implementar todos los metodos que ella
posee, en este caso solo uno que es el actionPerformed(ActionEvent e). Ahora
vamos a ver como usar esta interfaz y en que nos puede ayudar.
Se usa para detectar y manejar eventos de accin, osea, los que tienen lugar
cuando se produce una accin sobre un elemento del programa.

Un evento ActionEvent se produce:
al pulsar un botn.
al hacer doble clic en un elemento de lista.
al pulsar INTRO en una caja de texto.
al elegir un men.

Los distintos elementos del programa estn vigilados por Listeners que detectan
las acciones que tienen lugar sobre el elemento vigilado. Cuando ActionListener
detecta una accin se genera un evento de accin (ActionEvent) en el elemento.
Los ActionEvent invocan el mtodo actionPerformed(ActionEvent e) que realiza las
acciones programadas ante ese evento.

Excepciones

P

g
i
n
a
7


try
Define un bloque de cdigo donde se puede generar una excepcin. El bloque try
va seguido inmediatamente de uno o ms bloques catch y opcionalmente de una
clusula finally. Cuando se lanza una excepcin el control sale del bloque try actual
y pasa a un manejador catch apropiado.

La sintaxis general del bloque try consiste en la palabra clave try y una o ms
sentencias entre llaves.
try {
// Sentencias Java
}

Se pueden presentar dos situaciones diferentes a la hora de definir el bloque try:
Podemos tener ms de una sentencia que generen excepciones, en cuyo caso
podemos definir bloques individuales para tratarlos.

Podemos tener agrupadas en un mismo bloque try varias sentencias que puedan
lanzar excepciones, con lo que habra que asociar mltiples controladores a ese
bloque. Ser la decisin del programador utilizar una forma u otra de controlar las
excepciones.

catch
Define el bloque de sentencias que se ejecutarn cuando se haya
producido una excepcin en un bloque try.
La sintaxis general de la sentencia catch en Java es la siguiente:
catch( TipoExcepcion nombreVariable ) {
// sentencias Java}
Se pueden colocar sentencias catch sucesivas, cada una controlando una
excepcin diferente.
No debera intentarse capturar todas las excepciones con una sola clusula
ya que representa un uso demasiado general y podran llegar muchas
excepciones.
catch( Exception e ) { } //captura genrica


throw
La sentencia throw se ejecuta para indicar que ha ocurrido una
excepcin, o lanzamiento de una excepcin. La sentencia throw
especifica el objeto que se lanzar. La forma general de la sentencia

P

g
i
n
a
8

throw es:
throw ObjetoThrowable;
El flujo de la ejecucin se detiene inmediatamente despus de la
sentencia throw, y nunca se llega a la sentencia siguiente, ya que el
control sale del bloque try y pasa a un manejador catch cuyo tipo
coincide con el del objeto. Si se encuentra, el control se transfiere a esa
sentencia. Si no, se inspeccionan los siguientes bloques hasta que el
gestor de excepciones ms externo detiene el programa.


throws
Con throws un mtodo lista las excepciones que puede lanzar, y
que no va a manejar. Esto sirve para que todos los mtodos que lo
llamen puedan colocar protecciones frente a esas excepciones.
Para la mayora de las subclases de la clase Exception, el compilador
Java obliga a declarar qu tipos de excepciones podr lanzar un
mtodo.
Si un mtodo lanza explcitamente una instancia de Exception o de
sus subclases, se debe declarar su tipo con la sentencia throws. La
declaracin del mtodo sigue ahora la sintaxis siguiente:
tipo nombreMetodo( argumentos ) throws excepciones { }

Você também pode gostar