Java AWT Native Interface es una interfaz para el lenguaje de programación Java que permite que las bibliotecas de renderizado compiladas en código nativo se dibujen directamente en una superficie de dibujo de objetos Java Abstract Window Toolkit (AWT) .Canvas
La interfaz nativa de Java (JNI) permitió a los desarrolladores agregar funcionalidad dependiente de la plataforma a las aplicaciones Java . El JNI permite a los desarrolladores agregar operaciones de tiempo crítico como cálculos matemáticos y renderizado 3D . Anteriormente, la representación 3D nativa era un problema porque el código nativo no tenía acceso al contexto gráfico. La interfaz nativa de AWT está diseñada para brindar a los desarrolladores acceso a un AWT Canvas
para el dibujo directo mediante código nativo. De hecho, la extensión de la API de Java 3D al estándar Java SE JDKse basa en gran medida en la interfaz nativa de AWT para renderizar objetos 3D en Java. La interfaz nativa de AWT es muy similar a la JNI y, de hecho, los pasos son los mismos que los de la JNI. Consulte el artículo sobre la interfaz nativa de Java para obtener una explicación de las técnicas JNI empleadas por la interfaz nativa de AWT.
La interfaz nativa de AWT se agregó a la plataforma Java con la versión J2SE 1.3 ("Kestrel").
Pasos de la interfaz nativa de AWT
Un ejemplo de tutorial completo de esta tecnología está disponible en Wikilibros (ver enlace a continuación).
Crea una aplicación Java
Consulte el artículo sobre la interfaz nativa de Java para obtener una explicación de la native
palabra clave y el loadLibrary()
método. Un paint()
método simplemente se invocará cuando el subproceso de despacho de eventos AWT "vuelva a pintar" la pantalla.
Crear un archivo de encabezado de C ++
Cree el archivo de encabezado de C ++ como de costumbre (consulte Interfaz nativa de Java para obtener explicaciones más completas).
Implementar el código nativo de C ++
Escriba esto en un archivo llamado "NativeSideCanvas.cpp" y compílelo en una biblioteca. Consulte Interfaz nativa de Java (JNI) para obtener una explicación más completa. (Para el código Solaris y otros sistemas operativos, consulte los enlaces a continuación).
Ejecuta el programa
Uno debe ejecutar el archivo como de costumbre. Entonces debería ver una ventana con, por ejemplo, un rectángulo dibujado en ella. (Consulte Interfaz nativa de Java para obtener instrucciones completas).
Nota: Uno puede notar que la interfaz nativa de AWT requiere que "jawt.dll" (o "jawt.so") se ejecute con la aplicación, por lo que la forma más fácil de hacerlo es copiando "jawt.dll" (debe estar en la ruta del archivo ... / jre / bin de la ruta de instalación del JDK.) [ cita requerida ]
Pintura nativa
Se puede pintar como si fuera una aplicación nativa. En Windows , la JVM pasará un HWND y otra información de la ventana a la aplicación nativa para que la aplicación "sepa" dónde dibujar. Podría usar GDI para dibujar un rectángulo. La información de la ventana que necesita el lado nativo estará en una JAWT_Win32DrawingSurfaceInfo
estructura (según el sistema operativo ) que se puede recuperar con esta línea:dsi_win = (JAWT_Win32DrawingSurfaceInfo*)dsi->platformInfo;