Accéder au menu de l'application Mac OS X à partir de Java


J'écris une application Java conçue pour toutes les plates-formes, mais spécifiquement, je travaille sur l'apparence et l'intégration d'OS X (j'utilise NetBeans sur mon MacBook Pro). Je voudrais accéder au menu de l'application, c'est-à-dire au menu en gras nommé d'après l'application. Je souhaite enregistrer des auditeurs pour les éléments About et Quit, ainsi que pour afficher l'élément Preferences. Cela ne me dérangerait pas d'ajouter quelques articles de plus, aussi.

Alors, comment puis-je faire cela? J'ai vu des messages précédents se référer à OSXAdapter, mais les génies d'Apple ont décidé de le supprimer de leur bibliothèque (ou de le renommer de manière ambiguë) car tous les liens redirigent vers la page principale, et toutes mes recherches ont été infructueuses. J'ai également vu une classeMacOSAppAdapter , mais je ne sais pas comment l'utiliser. Toutes les classes et hiérarchies d'importation et nouvelles sont un peu déroutantes.

MODIFIER:

C'est ce que j'ai fait pour lier les éléments About, Preferences et Quit:

J'ai fait une nouvelle classe, MacOSXAboutHandler, qui étend

com.apple.eawt.Application

Son constructeur invoque simplement

setAboutHandler(AboutHandler aH)

Et je le fournis avec mon propre auditeur qui s'étend

AboutHandler

Dans ma classe principale, je détermine si je cours sur un Mac en utilisant

System.getProperty("os.name").contains("mac")

Si cela est vrai, alors je crée simplement une nouvelle instance de MacOSXAboutHandler. Le constructeur ajoute mon gestionnaire, et chaque fois que l'application est exécutée (ou même testée dans NetBeans), en cliquant sur À propos... l'élément du menu en gras de l'application exécute le code que j'ai spécifié dans mon AboutHandler.

La même chose est faite pour preferences et quit, en remplaçant simplement les occurrences de "about" par l'action appropriée. Tous ces gestionnaires sont écrits comme n'importe quel autre écouteur Java le serait.

Author: Machavity, 2012-07-31

1 answers

, Vous pouvez avoir un coup d'oeil à Apportant votre Application Java pour Mac OS X et (plus important) Apportant votre Application Java pour Mac OS X Partie 2 et Apportant votre Application Java pour Mac OS X, Partie 3,

Vous pourriez Référence de propriété système Java pour Mac d'utilisation

Vous voudrez peut-être jeter un oeil à API Java 6 Extensions d'Apple , d'après ma brève lecture, il semblerait que vous souhaitiez essentiellement utiliser l'instance par défaut si com.pommier.eawt.Application et fournissez les gestionnaires dont vous avez besoin (tels que setAboutHandler).

Vous pouvez également lire L'article Java sur Mac OS X About, Quit et Preferences menu items and events, qui devrait fournir quelques conseils supplémentaires.

 2
Author: MadProgrammer, 2017-08-21 17:48:26