¿Me gusta desarrollar en Java pero también quiero compatibilidad con el menú global? ¿Hay alguna manera? Por favor ayuda.
11
¿Me gusta desarrollar en Java pero también quiero compatibilidad con el menú global? ¿Hay alguna manera? Por favor ayuda.
Hay una biblioteca llamada java-gnome (un contenedor java gtk) que permite que sus aplicaciones se comporten como todas las aplicaciones nativas. Les proporciona toda la gloria: widgets nativos, menú global, etc.
La biblioteca está disponible en los repositorios de ubuntu:
El objetivo de la biblioteca es desarrollar una rica experiencia Java + Gnome. Tenga en cuenta que si usa esta biblioteca, su aplicación perderá la función multiplataforma de Java (ya que estará vinculada a java-gnome).
Aquí hay una aplicación de muestra (que viene con java-gnome) que muestra la integración del menú:
Prueba Ayatana. Puede encontrar instrucciones aquí: http://hanynowsky.wordpress.com/2012/05/12/integration-of-java-swing-applications-with-unity-global-menu-in-ubuntu-12-04/
Todo lo que tiene que hacer es importar la Biblioteca Java Ayatana y llamarla en su clase JFrame principal. Esto realmente implica la adición de las siguientes dos líneas en su código (así como la importación de clases de Ayatana):
Aquí hay un ejemplo:
Y lo más importante es que su aplicación aún es multiplataforma. He probado el ejemplo anterior en Ubuntu 12.04 LTS y Windows XP.
fuente
Puedes usar un ppa: ppa: danjaredg / jayatana
http://www.webupd8.org/2014/02/get-unity-global-menu-hud-support-for.html
fuente
Eso normalmente se hace a nivel de kit de herramientas, por ejemplo en GTK o Qt. Entonces, la forma prevista de hacerlo sería parchear Swing, si ese es el kit de herramientas GUI que está utilizando. Sin embargo, todos los componentes de Unity se comunican usando DBus, por lo que si realmente lo desea, puede hacerlo usted mismo implementando la API DBus usted mismo. Si desea hacer esto, puede echar un vistazo a libdbusmenu y ver cómo funciona.
fuente
No es una solución para ti, pero para tu información: archivé el error de Ubuntu # 984916 para rastrear el hecho de que los menús Swing no están (semi) integrados automáticamente en el menú global.
fuente