Bonjour ,
Je voudrais afficher un menu dynamique � partir d'un fichier xml et je ne sais pas comment. Merci d'avance pour votre aide.
Bonjour ,
Je voudrais afficher un menu dynamique � partir d'un fichier xml et je ne sais pas comment. Merci d'avance pour votre aide.
Salut,
Dans une application WEB, ou un client desktop (en SWING, JavaFX ou SWT ?) ?
Le principe c'est de lire le fichier xml, avec un parser XML (par exemple JDOM2). Puis de cr�er le menu � partir des informations lues dans le XML. Et la fa�on de le faire d�pend de quel type d'interface tu voudrais mettre en place.
L'expression "�a marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le probl�me.
La plupart des r�ponses � vos questions sont d�j� dans les FAQs ou les Tutoriels, ou peut-�tre dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement pos�e et r�dig�e et vous aurez plus de chances de r�ponses adapt�es et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'�diteur de messages).
Nouveau sur le forum ? Consultez Les R�gles du Club.
La base pour cr�er des menus en SWING est dans ce tutoriel : Ajouter une barre de menu � votre fen�tre.
Parcourir une liste d'�l�ments xml qui d�finissent un nom et �ventuellement une ic�ne pour cr�er autant de JMenuItem (ou JMenu pour les sous menu) n'est pas la partie la plus complexe. Un menu n'a d�int�r�t que s'il fait une action.
Pour avoir d�j� fait ce genre de chose, je dirais que tu as 4 orientations possibles :
- La premi�re est tr�s limit�e et peu �volutive, mais tr�s simple � programmer (un switch, ou une Map<String, javax.swing.Action>), du moins sans �crire du code � chaque �volution : dans l'�l�ment qui d�finit une entr�e de menu, on met un attribut id dont la valeur d�signe l'action qu'on veut faire. Par exemple on peut avoir
Le code qui contruit les menus sait interpr�ter les id pour d�terminer quelle action mettre sur le menu.
Code xml : S�lectionner tout - Visualiser dans une fen�tre � part <menu nom="Quitter" id="application.exit"/>
- Le xml contient une information d'identifiant d'action sous forme de nom de classe qui impl�mente javax.swing.Action (ou qui �tend java.swing.AbstractAction)
On instancie les classes d'action par r�flexion lors de la constitution du menu. En fonction de la complexit� et des fonctionnalit�s de ton menu (je pense en particulier aux probl�matiques de cacher un menu, ou de le rendre inactif, de faire d�pendre un menu du contexte de s�lection, etc...), on peut d�corr�ler l'action de ce quel fait, on introduisant un ou plusieurs niveaux de classes (handler, command, etc...), mais commence par faire �a avec des actions � un niveau, c'est le plus simple. En allant plus loin dans la complexit�, on peut m�me introduire dans le xml les conditions qui g�re l'activation ou la visibilit� de l'action, ou la s�lection (pour les actions de type toggle).- M�langer les 2 pr�c�dents syst�me
- Certaines actions standards sont identifi�es par un identifiant que l'application d�finit
- On peut toujours ajouter des actions en ajoutant juste des classes d'action et en modifiant le xml
- Les actions sont �crites en Javascript directement dans le XML(Avec Nashorn, on peut ex�cuter du javascript dans java tr�s facilement). Ce mode peut bien entendu �tre combin� avec le 1 et le 2 (tu peux ajouter un attribut dans le xml qui dit lequel des trois types est utilis� dans l'�l�ment pour d�crire l'action)
Sache �galement qu'il existe des syst�mes qui utilisent d�j� du xml pour param�trer des menus : si ton besoin est limit�, tu peux te faire ton propre syst�me, mais s'il est complexe, il peut �tre avantageux d'utiliser des syst�mes d�j� tout faits (je pense en particulier � Eclipse RCP, ou NetBeans RCP).
L'expression "�a marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le probl�me.
La plupart des r�ponses � vos questions sont d�j� dans les FAQs ou les Tutoriels, ou peut-�tre dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement pos�e et r�dig�e et vous aurez plus de chances de r�ponses adapt�es et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'�diteur de messages).
Nouveau sur le forum ? Consultez Les R�gles du Club.
Partager