Lubię rozwijać się w Javie, ale chcę także kompatybilność z menu globalnym? Czy jest jakiś sposób? Proszę pomóż.
11
Lubię rozwijać się w Javie, ale chcę także kompatybilność z menu globalnym? Czy jest jakiś sposób? Proszę pomóż.
Istnieje biblioteka o nazwie java-gnome (otoki java gtk), która pozwala twoim aplikacjom zachowywać się jak wszystkie aplikacje natywne. Zapewnia im całą chwałę: natywne widżety, globalne menu itp.
Biblioteka jest dostępna w repozytoriach ubuntu:
Celem biblioteki jest stworzenie bogatego środowiska Java + Gnome. Uwaga: jeśli użyjesz tej biblioteki, Twoja aplikacja utraci wieloplatformową funkcję Java (ponieważ będzie powiązana z java-gnome).
Oto przykładowa aplikacja (dostarczana z java-gnome) wyświetlająca integrację menu:
Wypróbuj Ayatana. Instrukcje można znaleźć tutaj: http://hanynowsky.wordpress.com/2012/05/12/integration-of-java-swing-applications-with-unity-global-menu-in-ubuntu-12-04/
Wystarczy zaimportować bibliotekę Java Ayatana i wywołać ją w głównej klasie JFrame. W rzeczywistości oznacza to dodanie następujących kilku wierszy w kodzie (a także import klas Ayatana):
Oto przykład:
Najważniejsze jest to, że Twoja aplikacja jest nadal wieloplatformowa. Testowałem powyższy przykład zarówno w Ubuntu 12.04 LTS, jak i Windows XP.
źródło
Możesz użyć ppa: ppa: danjaredg / jayatana
http://www.webupd8.org/2014/02/get-unity-global-menu-hud-support-for.html
źródło
Zwykle odbywa się to na poziomie zestawu narzędzi, na przykład w GTK lub Qt. Tak więc zamierzonym sposobem jest załatanie Swinga, jeśli używasz tego zestawu narzędzi GUI. Jednak wszystkie komponenty Unity komunikują się za pomocą DBus, więc jeśli naprawdę chcesz, możesz to zrobić samodzielnie, implementując API DBus. Jeśli chcesz to zrobić, możesz rzucić okiem na libdbusmenu i zobaczyć, jak to działa.
źródło
Nie jest to poprawka dla ciebie, ale FYI: Złożyłem błąd Ubuntu # 984916, aby śledzić fakt, że menu Swing nie jest (częściowo) automatycznie zintegrowane z menu globalnym.
źródło