Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
Entre AWT y Java Swing hay gran diferencia, pero al mismo tiempo hay grandes aspectos en común, ambos nos sirven
para realizar artefactos gráficos y utilizan prácticamente las mismas funciones y componentes, pero su diferencia radica
en que principalmente Java Swing es más avanzado y sus componentes se desarrollan de mejor manera, ademas desde
AWT necesitamos tener una plataforma especifica, mientras que desde Java Swing podemos utilizarlo y visualizarlo
desde diferentes lugares. Para la programación es muy importante conocer éste tipo de herramientas, pues son de gran
ayuda.
La primer alternativa es la nativa de Java; la misma existe desde la primer versión, y se denomina AWT
(Abstract Windowing Toolkit).
La segunda alternativa consiste en las JFC (Java Foundation Classes) las cuales son un conjunto de
clases que desarrolló posteriormente Sun Microsystems.
La tercer alternativa es SWT (Standard Widget Toolkit), desarrollada por IBM.
La cuarta alternativa se refiere a las WFC (Windows Foundation Classes) que fueron desarrolladas por
Microsoft y sólo funcionan en Plataformas Windows.
AWT es la alternativa más antigua, y se utilizó en GeneXus hasta la versión 7.5. Actualmente los
desarrolladores Java casi no la utilizan pues su principal inconveniente es que las pantallas no se
visualizan igual en diferentes plataformas. Como consecuencia, la capacidad de GeneXus de trabajar con
AWT para el diseño de pantallas tampoco era buena. Por ejemplo, en Windows 95 y utilizando el
ambiente de Sun, los controles de edit tenían un margen a cada lado del texto, por lo que si en GeneXus
se especificaba un edit de largo 5 caracteres, con AWT se veían 3. Esto no pasaba en Windows NT.
Otro inconveniente era que el combobox no podía tener un alto menor que un mínimo fijado por AWT.
Por ello, si e GeneXus se ponía un combobox en un grid, al obtener el foco, el control quedaba más alto
que su fila, superponiéndose con la fila de abajo.
Por este motivo, a partir de la versión 8.0, para la ejecución con Sun se puede utilizar JFC o SWT, siendo esta ultima
la recomendada.
JFC no presenta este tipo de problema debido a que el dibujo de los controles es realizado por la
“máquina virtual” que corresponda en el momento de la ejecución. De este modo, una ventana con sus
controles, se ve igual en todas las plataformas. Por ello, la performance de JFC es algo menor a la de
AWT.
SWT es un conjunto de herramientas open-source, totalmente dependiente de la interfaz gráfica de la
plataforma correspondiente. SWT utiliza los widgets del sistema en que se ejecuta (los widgets son
componentes gráficos para un control, por ejemplo para un botón). La ventaja respecto a JFC es que se
ejecuta con la apariencia y performance de las aplicaciones nativas de la plataforma. La desventaja es su
falta de portabilidad. En cuanto a AWT, la principal diferencia es que SWT aprovecha widgets de la
plataforma de mayor complejidad. Si en alguna plataforma no existe algún widget que sí es común en
otras, SWT da una implementación propia de ese en particular, como hace JFC.
WFC por su parte, son clases desarrolladas por Microsoft, y si se opta por esta alternativa, es necesario
ejecutar las aplicaciones con el Java de Microsoft. WFC brinda rapidez, sin embargo no es
multiplataforma, sino que sólo sirve para ambiente Windows. Además, Microsoft ya no trabaja más en su
desarrollo.
Contraseña: *
Iniciar sesión
Navegación
o Blogs
Categorias
Contenido
Foros de Discusión
Encuestas
Tips
Usuarios
Envíos recientes
Temas nuevos
Formulario con grupo JTexfield como el de mysql
Programador Java
Intentando aleatorizar las alternativas de un cuestionario
more
En línea
En este momento hay 0 usuarios y 38 invitados en línea.
Comentarios recientes
Sun tuvo una excelente idea
hace 2 semanas 2 días
Y técnicamente hablando como
hace 2 semanas 2 días
La primera opción.
hace 5 semanas 13 horas
Ustedes disculpen
hace 5 semanas 13 horas
ya la hice gracias
hace 5 semanas 4 días
Video
hace 6 semanas 2 días
Re: bromita
hace 10 semanas 9 horas
CHALE
hace 10 semanas 4 días
uso de threadLocal en lugar de synchronized
hace 12 semanas 2 días
Y te puedes conectar al
hace 12 semanas 2 días
Encuesta
¿Qué lenguaje alternativo para la JVM te llama más la atención?:
Groovy
Scala
Clojure
JRuby
Jython
Votar
Contenido popular
Hoy:
Refactorización: mejorando el diseño del código existente
Mi computadora no abre los archivos .jar
Como empezar a hacer aplicaciones de escritorio
Realtime sin websockets
Google Books Downloader
Siempre:
Estructura de datos java (Listas simplemente enlazadas) Primer aporte
Como programar en java Deitel & Deitel 7ma Edicion
Cargar una imagen en un JPanel en netbeans
como generar un archivo txt en java
Problema para comparar valores null, vacio o "" de un h:inputtext
Últimas impresiones:
JavaFX: Modo Pantalla Completa
Spring error en pom.xml
Clases envolventes - Wrapper classes
Payara Hello-World
reducir peso imagen
¿Qué es SWT?
SWT es un framework para crear interfaces gráficas en Java (como Swing o Awt) que crea a través de JNI (Java
Native Interface) interfaces gráficas nativas del Sistema Operativo en donde ejecutemos nuestra aplicación SWT. Esto
quiere decir que con el mismo código visualizaremos en cada Sistema Operativo nuestras ventanas como si hubieran
sido creadas para ese SO en específico.
Por ejemplo:
Windows
Linux/Gtk
Mac OS X
Motif
Photon
Ahora bien, enumeraré las que a mi parecer son las más visibles ventajas y desventajas de este framework.
Ventajas:
* Ya que crea nativamente la GUI dependiendo del SO, es más rápido que Swing
* Consume menos recursos
* La interfaz gráfica se verá como las demás aplicaciones de tu SO
* Está en constante desarrollo
Continúa...
Desventajas:
- Luego seleccionamos el zip que bajamos con swt y el nombre del proyecto ‘org.eclipse.swt’
- Ya tenemos SWT dentro de nuestro Workspace, ahora tenemos que agregarlo como dependencia de nuestro
proyecto ‘tests’, entonces vamos a las propiedades de ‘tests’ (click derecho en tests/properties), luego damos click en
Java Build Path, vamos a la pestaña de Projects y le damos ‘add..’ seleccionamos ‘org.eclipse.swt’, y luego OK y de
nuevo OK.
- Bien, ya tenemos nuestro proyecto listo para implementar SWT, ahora debemos saber algunos conocimientos
teóricos.
SWT se compone de principales elementos, que interactúan entre ellos para lograr la interfaz nativa que tanto le
caracteriza:
JNI. Java Native Interface, es el primer y más bajo nivel, que interactúa directamente con el Sistema
Operativo en el que estemos. En claro que cada SO necesita diferente configuración y librerías, pero JNI nos
simplifica el trabajo para que todo lo escribamos de una sola manera y él se encarga de lo demás, así
tenemos cumplida la visión de Java ‘write Once, run anywhere’
Display. Esta clase de SWT es la responsable de traducir o comunicar la Clase Shell con el JNI.
Shell. No chicos, no es ninguna shell que se pueda rootear! Shell es otra clase de SWT, que representa una
ventana y quien es la responsable de administrar los widgets (componentes) que tendremos en la misma.
Tendremos una instancia de la clase Shell por cada ventana en nuestro proyecto. Para poder instanciar la
clase Shell debemos hacer referencia a un Display anteriormente instanciado.
Como ya habíamos mencionado, ’shell’ es nuestra ventana, así que con ’setText’ definimos su título, con ’setVisible’ si
queremos que sea mostrada, con ’setSize’ el tamaño y con ‘open’ la iniciamos.
();
}
Este bucle while es muy importante, ya que es nuestro ‘manejador de eventos’, lo que hace es que una vez mostrada
la ventana y si la misma no está ejecutando algún evento lanza un bucle que deja la ventana en espera (sleep) de
otro evento venidero, así que está constantemente en escucha de algún otro evento que se dispare.
display.dispose();
por último, liberamos la aplicación con dispose(), quien finaliza ‘display’ y todos los shells que ‘display’ contiene, esto
solo ocurre cuando la ventana ha sido cerrada, cuando damos click en cerrar la ventana automáticamente el ciclo
while no se cumple y salta al siguiente paso ‘display.dispose()’
Resultado:
Utilizando Widgets.
Bueno, iba a explicar detalladamente como poner widgets en layouts y algunos tips más, pero desde ayer interrumpí
este tuto por cuestiones de trabajo, así que hice esta pequeña aplicación con una caja de texto, un botón y un listener
que ejecutan una acción..
Aqui está el código, por favor examínenlo y vean la manera de implementar los widgets en el Grid(layout), y también
chequen la acción que lleva a cabo el listener que le puse al botón.
Lo que muestra al iniciar la aplicación es esta ventanita: