AWT Y SWING EN JAVA

¿ QUE ES JAVA AWT ?


La Abstract Window Toolkit (AWT, en español Kit de Herramientas de Ventana Abstracta) es un kit de herramientas de gráficosinterfaz de usuario, y sistema de ventanas independiente de la plataforma original de Java. AWT es ahora parte de las Java Foundation Classes (JFC) - la API estándar para suministrar una interfaz gráfica de usuario (GUI) para un programa Java.

PAQUETES GRÁFICOS DE LAS JFC
Las JFC (Java Foundation Classes) son parte de la API de Java compuesto por clases que sirven para crear interfaces gráficas visuales para las aplicaciones y applets de Java.
Así como Sun presenta estas JFC, Microsoft ha desarrollado otro paquete propio con el nombre de AFD (Application Foundation Classes).
Las JFC contienen dos paquetes gráficos: AWT y Swing.
  • AWT: Presenta componentes pesados, que en cada plataforma sólo pueden tener una representación determinada. Está disponible desde la versión 1.1 del JDK como java.awt.
  • Swing: Presenta componentes ligeros, que pueden tomar diferente aspecto y comportamiento pues lo toman de una biblioteca de clases. Está disponible desde la versión 1.2 del JDK como javax.swing aunque antes se podían encontrar versiones previas como com.sun.java. o como java.awt.swing.

Resultado de imagen para awten java


VENTAJAS Y DESVENTAJAS DEL USO DE  AWT 

VENTAJAS
  • Velocidad al usar el sistema nativo como base hace que el desempeño de los componentes sea mas rapido.
  • Portabilidad de applets, casi todos los navegadores soportan las clases de awt asi que los applets construidos con awt pueden ejecutarse sin necesidad de plugin de java.
  • Apariencia al sistema en el que se esta ejecutando.
DESVENTAJAS
  • Los grandes creadores de componentes se han inclinado por el desarrollo swing y no awt esto hace que el conjunto de componentes awt mas pequeños.
  • Los componentes awt no soportan caracteristicas como iconos y tool-tips.

¿ QUE ES JAVA 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.*.

Ojo: Como regla, los programas no deben usar componenetes pesados de AWT junto a componentes Swing, ya que los componentes de AWT son siempre pintados sobre los de Swing. (Por componentes pesadas de AWT se entiende Menu, ScrollPane y todas las componentes que heredan de las clases Canvas y Panel de AWT).


Resultado de imagen para swing en java

VENTAJAS Y DESVENTAJAS DE USO DE SWING 

VENTAJAS

  • El diseño en Java puro posee menos limitaciones de plataforma.
  • El desarrollo de componentes Swing es más activo.
  • Los componentes de Swing soportan más características.

DESVENTAJAS

  • Los componentes swing generalmente son mas lentos y presenta mas problemas debido a que etan jechos en Java puro, y suelen presentar problemas realacionados con vidoe en varias plataformas.
  • No siempre tiene el mismo aspecto que en el sistema donde fueron diseñados.

COMPONENTES DE AWT DE JAVA

  • TextField : son los encargados de realizar esta entrada, aunque también se pueden utilizar, activando su indicador de no-editable, para presentar texto e una sola línea con una apariencia en pantalla más llamativa, debido al borde simulando 3-D que acompaña a este tipo de elementos del interfaz gráfico.
  • TextArea : es una zona multilínea que permite la presentación de texto, que puede ser editable o de sólo lectura. Al igual que la clase TextField, esta clase extiende la claseTextComponent y dispone de cuatro campos, que son constantes simbólicas que pueden ser utilizadas para especificar la información de colocación de las barras de desplazamiento en algunos de los constructores de objetos TextArea.
  • Label : proporciona una forma de colocar texto estático en un panel, para mostrar información fija, que no varía (normalmente), al usuario. La clase Label extiende la clase Component y dispone de varias constantes que permiten especificar la alineación del texto sobre el objeto Label.
  • Button : son los que se han utilizado fundamentalmente en los ejemplos de este Tutorial, aunque nunca se han considerado sus atributos específicamente.
    La clase Button es una clase que produce un componente de tipo botón con un título. El constructor más utilizado es el que permite pasarle como parámetro una cadena, que será la que aparezca como título e identificador del botón en el interfaz de usuario.
  • CheckBoxb : extiende la clase Component e implementa el interfaz ItemSelectable, que es el interfaz que contiene un conjunto de items entre los que puede haber o no alguno seleccionado.
  • Scrollbar : se utilizan para permitir realizar ajustes de valores lineales en pantalla, porporcionan una forma de trabajar con rangos de valores o de áreas, como en el caso de un área de texto en donde se proporcionan las barras de desplazamiento de forma automática.
  • Choice : permiten el rápido acceso a una lista de elementos, presentándose como título el item que se encuentre seleccionado.
    La clase Choice extiende la clase Component e implementa el interfaz ItemSelectable, que es el interfaz que mantiene un conjunto de items en los que puede haber, o no, alguno seleccionado. Además, esta clase proporciona el método addItemListener(), que añade un registro de eventos item, que es muy importante a la hora de tratar los eventos que se producen sobre los objetos de tipo Choice.
  • List : aparecen en los interfaces de usuario para facilitar a los operadores la manipulación de muchos elementos. Se crean utilizando métodos similares a los de los botones Choice. La lista es visible todo el tiempo, utilizándose una barra de desplazamiento para visualizar los elementos que no caben en el área de la lista que aparece en la pantalla.
  • Canvas : es una zona rectangular vacía de la pantalla sobre la cual una aplicación puede pintar, imitando el lienzo sobre el que un artista plasma su arte, o desde la cual una aplicación puede recuperar eventos producidos por acciones del usuario.
  • Frame :  elemento basico de una interfaz de usuario es la ventana.  Los Frame son las mas genericas, poseen un titulo  y un borde y los botones de ampliar y cerrar.
  • Dialog : se utiliza como una ventana independiente de la ventana principal para mostrar informacion.
  • FileDialog : La FileDialog clase muestra una ventana de diálogo desde la cual el usuario puede seleccionar un archivo. Dado que es un diálogo modal, cuando la aplicación llama a su show método para mostrar el diálogo, bloquea el resto de la aplicación hasta que el usuario haya elegido un archivo.
  • Panel : un panel es un contenedor ( class container ) basico de objetos.


Eventos Especificos de cada componente


Tipos de Eventos que se pueden Producir


PREFIJOS DE COMPONENTES 

  1. NOMENCLATURA DE SWING CONTAINERS
ContenedorPrefijo
JInternalFrameifrm
JPanelpan
JScrollPanescp
JTabbedPanetpn
JToolBartlb
  1. NOMENCLATURA DE SWING CONTROLS
ControlPrefijo
JButtonbtn
JButtonGroupbtg
JCheckBoxcbx
JComboBoxcmb
JLabellbl
JListlst
JPasswordFieldpwd
JProgressBarpgb
JScrollBarscb
JTabletbl
JTextAreatxa
JTextFieldtxt
JTextPanetxp
JTreejt
JDateChooserjdc
JCalendarjcl
JRadioButtonjrb
  1. NOMENCLATURA DE SWING MENUS
MenuPrefijo
JMenumnu
JMenuBarmnb
JMenuItemmni
  1. NOMENCLATURA DE SWING WINDOWS
WindowPrefijo
JColorChoosercch
JDialogdlg
JFileChooserjfc
JFramefrm
JOprionPaneopt
  1. OTROS
WindowPrefijo
DefaultTableModeldtm
JDialogdlg
JFileChooserjfc
JFramefrm
JOprionPaneopt