Diferencia entre revisiones de «Prog GUI»

De MediaWiki
Ir a la navegación Ir a la búsqueda
Línea 75: Línea 75:
  
  
 +
* Los nombres de los componentes Swing son los mismos que el de los componentes AWT anteponiendo la letra '''J'''. Por ejemplo: JButton, JCheckBox,...
  
 
<br />
 
<br />
  
 
<br> -- [[Usuario:angelfg|Ángel D. Fernández González]] -- (2017).
 
<br> -- [[Usuario:angelfg|Ángel D. Fernández González]] -- (2017).

Revisión del 11:07 19 feb 2018

Introducción

  • Los lenguajes de programación se fueron adaptando a las nuevas funcionalidades hardware de los fabricantes (monitores con más resoluciones y colores, CPU más potentes, tarjetas gráficas con mayores capacidades) permitiendo la utilización de nuevos recursos gráficos, dejando en un segundo plano los programas tipo 'consola', en la que la relación entre el programa y el usuario se hacía mediante texto.
  • Aparecieron sistemas operativos nuevos (como Windows o IOS) que disponía de una interface gráfica en el que la relación entre ll máquina y el usuario se basaba en el uso de elementos gráficos, como ventanas, cajas de texto, botones,...una forma mucho más 'amigable' que el uso de programas de consola, facilitando mucho su uso. Los programas que se desarrollaron a partir de entonces, incluían este tipo de recursos.
  • EL conjunto de elementos gráficos que permiten relacionar al usuario con un programa informático es lo que se conoce como Interface Gráfica de Usuario (en inglés Graphical User Interface o GUI).


  • En este tipo de programas, a diferencia de los de consola, la programación está basada en eventos.
En un programa de consola, el usuario elegía una de las opciones disponibles que mostraba el programa pulsando una tecla. Después aparecerían las opciones disponibles dentro de la elegida. Y así sucesivamente.
En un programa gráfico, con GUI, el usuario dispone de componentes sobre los que puede provocar eventos. Por ejemplo, al pulsar un botón, al pasar el ratón por encima de una etiqueta, al pulsa sobre un elemento de la lista.
Lo que hace el programador es 'registrar' tipos de eventos sobre los diferentes elementos gráficos, de tal forma que el S.O. cuando 'captura' un evento, lo va a enviar a aquellos componentes gráficos que puedan atender el tipo de evento capturado.



Librerías de Java GUI

  • En Java, las librerías que proporcionan los elementos gráficos que conforman la interface gráfica de usuario se encuentra en dos librerías:
Ambas forman parte de Java Foundation Classes que es un framework (conjunto de librerías que nos proporcionan recursos para ser utilizados de una forma 'común' en el desarrollo de aplicaciones, en este caso, de aplicaciones gráficas).
Prog gui 1.png


  • Lo que ofrece JFC:
  • Soporte de diferentes aspectos y comportamientos.
Ofrece a cualquier componente Swing una amplia selección de aspectos y comportamientos.
Por ejemplo, el mismo programa puede usar el Aspecto y Comportamiento Java (conocido como Metal), el Aspecto y Comportamiento Windows o el Aspecto y Comportamiento Unix (Motif).
Podéis consultar en este enlace varios ejemplos de aspectos diferentes.
  • API de Accesibilidad
Permite el uso de tecnologías como lectores de pantalla y display Braille para obtener información desde el interface de usuario.
  • Java 2D API (sólo JDK 1.2 )
Permite a los desarrolladores incorporar fácilmente gráficos 2D de alta calidad, texto, e imágenes en aplicaciones y applets Java.
  • Soporte de Drag and Drop (sólo JDK 1.2)
Proporciona la capacidad de arrastrar y soltar entre aplicaciones Java y aplicaciones nativas (del propio sistema operativo).



AWT

  • Podéis consultar en este enlace todos los componentes que conforman la librería AWT.
  • Los componentes gráficos que utilizan la librería AWT tienen las siguientes características:
  • Para dibujarse utilizan llamadas directamente a la API del S.O.
Esto lleva consigo que cuando dibujamos una ventana, esta tendrá el aspecto que el resto de ventanas del S.O. Por lo que si una misma aplicación la llevamos a dos ordenadores con dos sistemas operativos diferentes, tendrá cada una el aspecto propio de cada S.O.
  • Cada componente gráfico crea 'su propia ventana' para dibujarse por lo que el gasto en recursos es mayor.


  • Algunos de los elementos son contenedores que contienen componentes gráficos u otros contenedores. Los eventos pueden producirse sobre un contenedor o sobre un componente.


  • Al depender fuertemente de los componentes nativos del sistema operativo el programador AWT estaba confinado a un mínimo denominador común entre ellos. Es decir que sólo se disponen en AWT de las funcionalidades comunes en todos los sistemas operativos. Por ejemplo, un S.O. podría ofrecer botones con imágenes en su interior, pero otro no, por lo que dicha funcionalidad no podría ofrecerse.
  • El comportamiento de los controles varía mucho de sistema a sistema y se vuelve muy difícil construir aplicaciones portables. Es decir, la forma de responder a determinados eventos puede ser diferente entre S.O. distintos.


Prog gui 2.jpg
Imagen obtenida de los apuntes de Jose Luis Comesaña



Swing

  • A diferencia de AWT, Swing utiliza AWT para crear una ventana del S.O. y después, sobre ella, se encarga de 'pintar' todos los componentes gráficos que se encuentran dentro de la misma así como de responder a los eventos.
  • Esto permite que Swing sea 100% portable y que se pueda dar la misma apariencia a los componentes gráficos para que se visualicen de la misma forma en todos los S.O.


  • Los nombres de los componentes Swing son los mismos que el de los componentes AWT anteponiendo la letra J. Por ejemplo: JButton, JCheckBox,...



-- Ángel D. Fernández González -- (2017).