Menu Java

HommeCocoa

Membre actif
3 Janvier 2003
173
0
Vevey - Suisse
Bonjour,

J'ai trouvé dans la documentation Java une page expliquant comment utiliser les menus et même une page d'exemple de code:

http://java.sun.com/docs/books/tutorial/uiswing/components/example-1dot4/MenuLookDemo.java

Seulement je suis un peu deçu car les menu s'affichent en haut de ma JFrame comme sur un PC et non pas dans la vrai bar de menu des Mac.

Est-il possible de placer les menus à leur VERITABLE emplacement Mac?

Merci,
David
 
Je connais pas la programmation Java sous MacOS, mais les API de Sun étant portables par nature, j'imagine que pour avoir un comportement spécifique MacOs, il faut utiliser des API Java d'Apple.
 
OlivierL a dit:
Je connais pas la programmation Java sous MacOS, mais les API de Sun étant portables par nature, j'imagine que pour avoir un comportement spécifique MacOs, il faut utiliser des API Java d'Apple.

Effectivement, dans certains cas, il faut le faire. Mais ils sont rares :).

Par exemple, j'ai du faire quelque chose du genre pour gérer l'affichage des préférences et de la fenêtre d'à propos depuis le menu Pomme.

Dans ce cas, et pour garder ton appli portable, il faut faire un chargement dynamique du listener en ayant détecté au préalable que tu es bien sous mac os ;).

Un exemple d'une telle classe tirée du projet Timmic.
 
Merci beaucoup pour l'article que tu m'as passé GrandGibus!

Ca répond a pas mal de mes questions en même temps puisqu'une autre de mes questions était: Comment rendre une application autonome.

Cependant après avoir lus l'article j'ai encore plus de problèmes :heu:

Premièrement contrairement à l'exemple de l'article quand je tape

Bloc de code:
java -cp junit.jar:. junit.swingui.TestRunner
	junit.samples.AllTests

dans mon terminal, j'ai droit à une exception

Bloc de code:
Exception in thread "main" java.lang.NoClassDefFoundError: junit/swingui/TestRunner

Je ne peux donc pas continuer l'exemple.

J'ai alors essayé sur un de mes autres projets qui fonctionne mais je n'ai jamais de .jar mais uniquement des .class

Je suis un peu (beaucoup) perdu :heu:

David
 
l'exemple de l'article utilise JUnit pour illustrer ses propos.

Junit est une application Java de test unitaires.

De plus, le message renvoyé par Java est clair: "NoClassDefFoundError exception". Java n'arrive pas à trouver dans le classpath (l'endroit où il charge les .class) la classe mentionnée: TestRunner. Dans le cas de JUnit, cette classe est packagée dans un fichier JAR (qui est en fait une simple archive zip).

En Java:
  • soit tu compresses tes classes (fichiers .class) dans une archive appelée monprojet.jar. Dans ce cas au lancement, il faut faire java -cp monprojet.jar.
  • soit tu laisses ton répertoire avec toutes les classes et tu désignes le répertoire "racine" dans le classpath
 
Pour Eclipse je ne sais pas :)

Mais tu peux, dans ta méthode main, ajouter ça:
Bloc de code:
if(System.getProperty("os.name").toLowerCase().startsWith("mac"))
   System.setProperty("apple.laf.useScreenMenuBar", "true");