Desarrollo de escritorio Java con Qt Jambi

Qt Jambi es una alternativa nueva y notable a Swing y Java 2D para desarrollar interfaces de aplicaciones de escritorio ricas y multiplataforma. En este artículo, el colaborador de JavaWorld, Jeff Hanson, presenta el Qt Jambi recientemente lanzado, explica cómo funciona bajo el capó y presenta ejemplos de programación que lo familiarizarán con la API de arrastrar y soltar del marco y las herramientas de desarrollo integradas.

Qt Jambi, lanzado a principios de junio de 2007, es un marco de desarrollo que integra el lenguaje de programación Java con el popular marco de desarrollo de GUI C ++ de Trolltech, Qt. Lanzado bajo una licencia dual de código abierto / comercial, Qt Jambi permite a los desarrolladores de Java que utilizan Java Standard Edition 5.0 (JSE 5.0) y versiones posteriores aprovechar las características del marco Qt. Junto con el soporte multiplataforma probado en la industria, Qt Jambi brinda soporte para los conceptos básicos de desarrollo de GUI, como gráficos 2D y 3D, mensajería de eventos interobjetos de arrastrar y soltar, internacionalización, acceso a bases de datos SQL, XML y protocolos de red TCP / IP. Un complemento Qt Jambi Eclipse también le brinda la opción de acceder a las funciones de Qt Jambi usando Eclipse.

Descarga Qt Jambi
Qt Jambi se ofrece bajo una licencia dual de código abierto / comercial. Puede descargar cualquiera de las versiones desde la página de inicio de Trolltech. La versión de código abierto se proporciona bajo la Licencia Pública General GNU y viene sin soporte ni garantía. Los proyectos comerciales deben utilizar la versión comercial de Qt Jambi.

Qt Jambi se basa en la base de la GUI C ++ multiplataforma de Qt para facilitar la tarea de desarrollar interfaces de usuario de apariencia y funcionalidad nativas para la mayoría de las plataformas de escritorio que utilizan código Java. Como tal, es una alternativa interesante a Swing y Java 2D para el desarrollo de escritorio Java. En esta introducción práctica a Qt Jambi, aprenderá sobre la API de desarrollo de Qt Jambi y las herramientas de desarrollo integradas. Se le presentará al marco de GUI basado en widgets de Qt Jambi y aprenderá cómo crear un proyecto usando Qt Designer. También comparará el mecanismo de manejo de eventos de señales y ranuras de Qt Jambi con el marco de escucha de eventos de Java, obtendrá un primer vistazo al sistema de representación de gráficos de Qt Jambi y verá por sí mismo cómo se integra con Eclipse a través del complemento Qt Jambi Eclipse.

Descargue Qt Jambi ahora si desea seguir los ejemplos.

Descripción general de Qt Jambi

Qt Jambi es un marco basado en Java que integra el marco C ++ multiplataforma de Trolltech para el desarrollo de GUI con el lenguaje de programación Java. Las siguientes funciones están disponibles al desarrollar aplicaciones de escritorio Java con Qt Jambi:

  • Excelente soporte multiplataforma para gráficos 2D y 3D
  • Un mecanismo único de comunicación de eventos entre objetos
  • Internacionalización
  • Acceso a la base de datos SQL
  • Soporte para XML
  • Soporte para protocolos de red TCP / IP

Puede utilizar Qt Jambi con la mayoría de las JVM (máquinas virtuales Java) posteriores a Java Standard Edition (JSE) 5.0 y Java Enterprise Edition (JEE) 5.0. La estrecha integración del sistema operativo de Qt Jambi le permite producir aplicaciones de escritorio Java que imitan la apariencia del sistema operativo nativo.

Qt se encuentra con el lenguaje de programación Java

La API Qt Jambi proporciona una fina capa de código Java que interactúa con las bibliotecas C ++ compiladas de forma nativa de Trolltech. Esta capa de código Java se ejecuta en cualquier entorno de ejecución de Java (JRE) y utiliza el marco de la interfaz nativa de Java (JNI) para comunicarse con las bibliotecas nativas de C ++.

Esencialmente, Qt Jambi coloca una capa de abstracción de Java sobre las bibliotecas C ++ de Qt. Para abordar la similitud y la superposición entre las clases C ++ de Qt y las clases centrales de Java, Qt Jambi mapea las clases C ++ superpuestas a las clases Java correspondientes. Como resultado, puede usar construcciones y operadores estándar de Java con abstracciones nativas de Qt. También puede entremezclar las API de Qt Jambi con las API de Java que no sean de Qt.

La Tabla 1 muestra las clases de Qt que se asignan a clases centrales de Java equivalentes.

Tabla 1. Clases Qt asignadas a clases Java equivalentes

Clase Qt Clase (s) de Java
QChar char y java.lang.Character
QHash java.util.HashMap
QList java.util.List
QMap java.util.SortedMap
QString java.lang.String
QThread java.lang.Thread
QVector java.util.List

La API Qt C ++ depende de un tipo de valor abstracto QVariantpara encapsular muchos tipos de valores Qt. Debido a que el lenguaje Java ya proporciona un tipo abstracto común para todas las clases (la Objectclase base común ), la API Qt Jambi se basa en la Objectclase en la que se basa Qt C ++ QVariant. Qt Jambi asigna enumeraciones de C ++ a enumeraciones de Java para reforzar la seguridad de tipos para las enumeraciones de Qt-Java y los indicadores de bits.

Qt Jambi incluye un marco de interfaz gráfica de usuario basado en widgets que aprovecha las extensiones específicas de la plataforma, como ActiveX, OpenGL y ClearType. Este marco proporciona capacidades de apariencia nativa para temas de Windows, Mac OS X y Linux.

Los widgets en Qt Jambi siguen una sintaxis de hoja de estilo similar a las hojas de estilo en cascada (CSS) HTML, por lo que puede realizar personalizaciones menores o generalizadas ajustando las etiquetas y propiedades de estilo CSS. También puede subclasificar los widgets de Qt para obtener aún más personalización y control de apariencia y sensación.

El marco de GUI de Qt Jambi incluye clases de gestión de diseño que se presentan en la herramienta Qt Designer para simplificar el diseño al crear componentes y aplicaciones de escritorio. La Figura 1 muestra la ventana Layouts en la herramienta Qt Designer.

El marco de GUI de Qt Jambi proporciona API para crear aplicaciones con componentes acoplables. Entre otras cosas, puede utilizar esta función para crear aplicaciones de escritorio con barras de herramientas de acoplamiento de apariencia y funcionalidad nativas.