domingo, 22 de agosto de 2010

APPLETS


PROGRAMACION DE APPLETS


Un applet es un componente de una aplicación que se ejecuta en el contexto de otro programa, por ejemplo un navegador web. El applet debe ejecutarse en un contenedor, que lo proporciona un programa anfitrión, mediante un plugin, o en aplicaciones como teléfonos móviles que soportan el modelo de programación por applets.
A diferencia de un programa, un applet no puede ejecutarse de manera independiente, ofrece información gráfica y a veces interactúa con el usuario, típicamente carece de sesión y tiene privilegios de seguridad restringidos. Un applet normalmente lleva a cabo una función muy específica que carece de uso independiente. El término fue introducido en AppleScript en 1993.
Ejemplos comunes de applets son las Java applets y las animaciones Flash. Otro ejemplo es el Windows Media Player utilizado para desplegar archivos de video incrustados en los navegadores como el Internet Explorer. Otros plugins permiten mostrar modelos 3D que funcionan con una applet.
Un Java applet es un código JAVA que carece de un método main, por eso se utiliza principalmente para el trabajo de páginas web, ya que es un pequeño programa que es utilizado en una página HTML y representado por una pequeña pantalla gráfica dentro de ésta.
Por otra parte, la diferencia entre una aplicación JAVA y un applet radica en cómo se ejecutan. Para cargar una aplicación JAVA se utiliza el intérprete de JAVA (pcGRASP de Auburn University, Visual J++ de Microsoft, Forte de Sun de Visual Café). En cambio, un applet se puede cargar y ejecutar desde cualquier explorador que soporte JAVA (Netscape, Internet Explorer, Mozilla Firefox...).

CARACTERÍSTICAS DE UN APPLET
  1. Los applets no tienen un método main( ) con el que comience la ejecución.
  2. Todos los applets derivan de la clase java.applet.Applet
  3. Los applets deben redefinir ciertos métodos heredados de Applet que controlan su ejecución: init(), start(), stop(), destroy().
  4. Los métodos gráficos se heredan de Component, mientras que la capacidad de añadir componentes de interfase de usuario de heredan de Container y de Panel.
  5. También suelen redefinir ciertos métodos gráficos: los más importantes son paint(), update() y repaint().
  6. Los applets disponen de métodos relacionados con la obtención de información, como por ejemplo: getAppletInfo(), getAppletContext(), getParameterInfo(), getParameter(),getCodeBase(), getDocumentBase() e isActive().
CARACTERISTICAS AWT
         Es una librería de clases Java para desarrollar interfaces de usuario gráficas.
         Es la librería básica y se ha construido una posterior que es la Swing.
         La librería AWT esta compuesta por:
         Los Componentes (java.awt.Component), como los Buttons, Labels,..
         Los Contenedores (java,awt.containers), contienen componentes.
         Los gestores de posición (java.awt.LayoutManager), que posiciona los componentes dentro de los contenedores.
         Los eventos (java.awt.AWTEvent), que nos indican las acciones del usuario.
         Es una clase abstracta que representa todo lo que tiene una posición, un tamaño, puede ser pintado en pantalla y puede recibir eventos.
         Los componentes de AWT son:
         Button
         Canvas
         Checkbox
         Choice
         Container
         Panel
         ScrollPane
         Window
         Dialog
         FileDialog
         Frame
CARACTERISTICAS SWING
El paquete Swing es parte de la JFC (Java Foundation Classes) en la plataforma Java. La JFC provee facilidades para ayudar a la gente a construir GUIs. Swing abarca componentes como botones, tablas, marcos, etc.
Las componentes Swing se identifican porque pertenecen al paquete javax.swing.
Swing existe desde la JDK 1.1 (como un agregado). Antes de la existencia de Swing, las interfaces gráficas con el usuario se realizaban a través de AWT (Abstract Window Toolkit), de quien Swing hereda todo el manejo de eventos. Usualmente, para toda componente AWT existe una componente Swing que la reemplaza, por ejemplo, la clase Button de AWT es reemplazada por la clase JButton de Swing (el nombre de todas las componentes Swing comienza con "J").
Las componentes de Swing utilizan la infraestructura de AWT, incluyendo el modelo de eventos AWT, el cual rige cómo una componente reacciona a eventos tales como, eventos de teclado, mouse, etc. Es por esto, que la mayoría de los programas Swing necesitan importar dos paquetes AWT: java.awt.* y java.awt.event.*




CLASES DE AWT
Clase Component
Es una clase abstract de la que derivan todas las clases del AWT. Los métodos de esta clase son importantes porque son heredados por todos los componentes del AWT. En las declaraciones de los métodos de dicha clase aparecen las clases Point, Dimension y Rectangle.
Clase EventObject y AWTEvent
La clase AWTEvent no define ningun método, pero hereda de EventObject el método getSource( ), que devulve una referencia al objeto que genero el evento.
Clase ComponentEvent
Se generan cuando un Component de cualquier tipo se muestra, se oculta o cambia de posición o de tamaño. Los eventos de mostrar u ocultar ocurren cuando se llama al método setVisible(boolean). Otro método útil es Component getComponent( ) que devuelve el componente que generó el evento. Se puede utilizan en lugar de getSource( ).
Clase InputEvent y MouseEvent
De la clase InputEvent descienden los eventos del ratón y el teclado. Esta clase dispone de métodos para detectar si los botones del ratón o las teclas especiales han sido pulsadas.   Se produce MouseEvent cada vez que el cursor movido por el ratón esntra o sale de un componente visible en la pantalla, al clicar, o cuando se pulsa o se suelta un botón del ratón.
Clase FocusEvent
El Focus está relacionado con la posibilidad de sustituir al ratón por el teclado en ciertas operaciones. De los componentes que aparecen en pantalla, en un momento dado hay sólo uno que puede recibir las acciones del teclado y se dice que ese compoente tiene el Focus.
Clase Container
Es una clase muy general. Los métodos de esta clase son heredados por las clases Frame y Panel, los cuales son muy utilizados para crear objetos.
Clase Windows
Los objetos de ésta clase son ventanas de máximo nivel, pero sin bordes ni barras de menú. Las clases que derivan de ella son: Frame y Dialog.
Clase WindowEvent
Se produce cada vez que se abre, cierra, iconiza, restaura, activa o desactiva una ventana. El uso más frecuente de está clase es para cerrar ventanas (ctrl+alt+supr). También se utiliza para detener threads y liberar recursos al iconizar una ventana (por ejemplo animaciones) y comenzar de nuevo al restaurarla.
Clase Frame
Es una ventana con un borde y que puede tener una barra de menús. Si una ventana depende de otra, es mejor utilizar una Window que un Frame.
Clase Dialog
Es una ventana que depende de otra ventana (Frame). Si un Frame se cierra, se cierran también los Dialog que dependen de ella. Un Dialog modal requiere atención inmediata del usuario: no se puede hacer otra cosa hasta haber cerrado el Dialog.
Clase FileDialog
Muestra una ventan de diálogo en la cual se puede seleccionar un fichero. Las constantes enteras LOAD (abrir fichero para lectura) y SAVE (abrir fichero para escritura) definen el modo de apertura del fichero.
Clase Panel
Un Panel es el Container de propósito general. Se puede utilizar tal cual para contener otros componentes. Por default, el Layout Manager de Panel es FlowLayout. Los applets son sub-clase de Panel.
Clase Button
El evento  más importante que recibe es que al clicar sobre él se genera un evento de la clase ActionEvent. Se puede cambiar el aspecto del botón y también se puede establecer si está activado o no.
Clase ActionEvent
Se producen al clicar con el ratón en un botón (Button), al elegir un comando de un menú (MenuItem), al hacer doble click en un elemento de una lista (List) y al pulsar intro para introducir un texto en una caja de texto (TextField).
Clase Canvas
Un Canvas es una zona rectangular de pantalla en la que se puede dibujar y en la que se pueden generar eventos. Las Canvas permiten realizar dibujos, mostrar imágenes y crear componentes a medida, de modo que se muestre un aspecto similar en todas las plataformas.  Constructor:   Canvas( )  Método de la clase:  paint (Graphics g);
Component Checkbox y clase CheckboxGroup
Los objetos de la clase Checkbox son botones de opción o de selección con dos posibles valores: on y off. Al cambiar la selección en un Checkbox se produce un ItemEvent.
La clase CheckboxGroup permite la opción de agrupar varios Checkbox de modo que uno y solo uno este en on.  Constructores:  Checkbox( ), Checkbox(String), Checkbox(String, boolean), Checkbox(String,Boolean,CheckboxGroup),  Checkbox(String,CheckboxGroup,Boolean).
Clase ItemEvent
Se produce cuando ciertos componentes (Checkbox, CheckboxMenuItem, Choice y List) cambian de estado (on/off).
Clase Choice
Permite elegir un elemento de la lista desplegable. Constructor Choice( ).
Clase Label
Introduce en un container un texto no seleccionable y no editable, por default se alinea  a la izquierda. La clase Label define las constantesLabel.CENTER , Label.LEFT y Label.RIGHT para determinar la alineación del texto. Constructores: Label(String lbl) , Label(String lbl, int alineación).
Clase List
Viene definida por una zona de pantalla con varias líneas, de las que se muestran solo algunas, y entre las cuales se puede hacer una selección simple o múltiple. Constructores: List( ), List(int  línea, boolena mult).
 Clase Scrollbar
 Un Scrollbar es una barra de desplazamiento con un cursor que permite introducir y modificar valores, entre unos valores mínimo y máximo, con pequeños y grandes incrementos.  Esta clase tiene dos constantes, Scrollbar.HORIZONTAL y Scrollbar.VERTICAL, que indican la posición de la barra.  Constructores: Scrollbar( ), Scrollbar(int pos), Scrollbar(int pos, int val, int vis, int min, int max) donde :
Pos es la posición de la barra vertical u horizontal; el rango es el intervalo entre los valores mínimo min.,  máximo máx y por ultimo, vis que es el tamaño de área visible. 
Clase ScrollPane
 Es una ventana de tamaño limitado en las que se pueden mostrar un componente de mayor tamaño con dos Scrollbar,  uno vertical y otra horizontal. Constructores: ScrollPane(), ScrollPane(int scbs) .
 Clases TextArea y TextField
 Muestran texto seleccionable y editable. La diferencia principal es que TextField solo puede tener una línea, mientras que TextArea puede tener varias líneas.
Constructores de TextField: TextField(), TextField(int ncol), TextField(String s), TextField(String s, int ncol).
Constructores de TextArea:  TextArea(), TextArea(int nfil, int ncol), TextArea(String text), TextArea(String text, int nfil, int ncol)
 Clase Menu
 Define las opciones que aparecen al seleccionar uno de los menús de la barra de menús.  Constructores: Menu (String).
 Clase MenuBar
 A una MenuBar solo pueden añadirse objetos Menu. Constructor :  MenuBar().
 Clase MenuItem
 Los objetos de esta clase representan las distintas opciones de un menú.
 Clase CheckboxMenuItem
Son elementos de un menú que pueden estar activados o no. Constructores:  CheckboxMenuItem(String lbl), CheckboxMenuItem(String lbl, boolean estado).
Menús  pop-up
Son menús que aparecen en cualquier parte de la pantalla al clicar con el botón derecho del ratón.  Constructores :  PopupMenu( ), PopupMenu(String titulo).
METODOS CLASE BUTTON
Button(),                  
construye un botón sin etiqueta;

Button(String txt),   
construye un botón con etiqueta txt.

void addActionListener(ActionListener l),         
añade el botón a un objeto invocado.

ActionListener,       
que escucha los sucesos. Cuando se clique el botón, el suceso será gestionado por ActionListener.

AccessibleContext getAccessibleContext(),    
como para las Label, los botones son también unos contenedores.

String getActionCommand(),       
 a cada botón se asocia una orden que devuelve el actual.

String getLabel(),    
devuelve la etiqueta asociada al botón.

EventListener[] getListeners(Class listenerType),      
da un array que incluye a todos los que escuchan sucesos establecidos por este botón.

addXXXListener(),
añade un oyente de sucesos de tipo XXX. En Java hay varios tipos de sucesos, los analizaremos dentro de poco. Uno de éstos es el suceso de tipo action y, en este caso, el método es addActionListener( )

void removeActionListener(ActionListener l),  
 elimina el oyente de sucesos 1 precedentemente asociado al botón.

void setActionCommand(String command),    
ajusta la orden asociada al botón. Al principio la orden es la etiqueta.

void setLabel(String label), ajusta la etiqueta del botón.
METODOS CLASE LABEL
JLabel(Icon)  JLabel(Icon, int)  JLabel(String)  JLabel(String, Icon, int) JLabel(String, int)  JLabel()

Crea un ejemplar de JLabel, inicializándolo para tener texto/imagen/alineamiento especificados. El argumento int especifica el alineamiento horizontal del contenido de la etiqueta dentro de su área de dibujo. El alineamiento horizontal debe ser una de las siguientes constantes definidas en el interface swingconstant (que implementa JLabel): LEFT, CENTER, o LEFT. void setText(String)
String getText()
Selecciona u obtiene el texto mostrado por la etiqueta. void setIcon(Icon)
Icon getIcon()
Selecciona u obtiene la imagen mostrada por la etiqueta. void

setDisplayedMnemonic(char)
char getDisplayedMnemonic()
Selecciona u obtiene la letra que debería ser la tecla alternativa. Esto es muy útil cuando una etiqueta describe un componente (como un campo de texto) que tiene un tecla alternativa pero no puede mostrarla. void setDisabledIcon(Icon)
Icon getDisabledIcon()
Selecciona u obtiene la imagen mostrada por la etiqueta cuando está desactivada. Si no se especifica esta imagen, el aspecto y comportamiento crea una manipulando la imagen por defecto.
METODOS CLASE TEXTFIELD
La clase TextField tiene cuatro constructores: TextField(), TextField(int), TextField(String), y TextField(String, int). El argumento entero especifica el número de columnas del campo de texto. El argumento String especifica el texto mostrado inicialmente en el campo de texto. La clase TextField también suministra los siguientes métodos:
int getColumns()
Devuelve el número de columnas del campo de texto.
setEchoChar()
Activa el eco del caracter, es útil para los campos de Password.
char getEchoChar() y boolean echoCharIsSet()
Estos métodos le permite preguntar sobre el eco de caracteres.

str1.equals( str2 )  compara las tiras  str1 con  str2
str1.length( )  longitud de la tira str1
str1.charAt(j) caracter en la posición   j   de la tira str1. La primera posición es la posición 0 y la última es la posición str1.length( )-1 
str1.charAt(j)== 'x' decide si el char de la posición  j  es 'x'. Observe el uso de comillas simples ( ' ' ).
str1.substring(i,j )  substring de  i   a  j. Si str1="hola", str1.substring(0,1) es "ho"

INFOGRAFIA
http://usuarios.multimania.es/java_2000/pagina_nueva_1.htm
http://www.dcc.uchile.cl/~lmateu/CC60H/Trabajos/edavis/swing.html
http://es.wikipedia.org/wiki/Applet_Java
http://www.javahispano.org
http://www.htmlpoint.com/guidajava/java_21.htm
http://www.programacionfacil.com/java:label
http://www.programacion.com/articulo/swing_y_jfc_java_foundation_classes_94/33

No hay comentarios:

Publicar un comentario