IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Modifier les menus en fonction des choix utilisateur


Sujet :

AWT/Swing Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Points : 117
    Points
    117
    Par défaut Modifier les menus en fonction des choix utilisateur
    Bonjour,

    avant de vous poser la question, je vous explique la situation.
    j'ai un fichier java qui gère les menus (file,help,menu1,menu2 etc...).
    ce que j'aimerai, c'est qu'au départ l'application ne comporte que le menu "file", "help".
    ensuite, j'aimerai que l'utilisateur puisse choisir les menus qui veulent afficher.
    Pour cela, je souhaiterai faire une très petite application qui afficherait la liste des menus sous forme de cases à cocher par exemple, et dès qu'il choisit les menus à afficher , cela mettrait à jour le fichier qui gère les menus en ajoutant le code associé
    Bien entendu, les menus sont connus et le code à insérer aussi.
    Ensuite,il suffit de compiler etc..... (ça aussi se ferait par la ptite interface).
    Avec ce système là, il pourrait avoir plusieurs versions de son programme.

    En fait, mon problème est comment mettre à jour ?

    une idée: ouvrir le fichier, mettre un marqueur où je souhaite modifier le programme etc...., ensuite le sauvegarder.
    mais en java, existe-til pas une solution plus efficace ?

    Merci, en espérant que j'ai été clair.

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 852
    Points : 22 869
    Points
    22 869
    Billets dans le blog
    51
    Par défaut
    Pourquoi se casser la tete en faisant ca ?

    Tu codes les actions de tes menus, tu permets a l'utilisateur de configurer ses menus et tu stockes ses preferences via l'API Preferences, Properties, XML ou autre. Au demarage de l'application, elle verifie les preferences et construit le menu au vol en fonction (rien de bien complexe)... Aucun besoin de devoir recompiler l'application en changeant la configuration.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Points : 117
    Points
    117
    Par défaut Idée excellente
    Merci beaucoup pour cette idée, donc si j'ai bien compris la situation, il suffirait que je crée une interface avec les menus qui veut choisir, ensuite on met à jour par exemple le fichier xml.
    et lorsqu'il ouvre l'application, dans la classe où je gère l'affichage des menus, je lis le fichier xml, c'est ça non ?

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 852
    Points : 22 869
    Points
    22 869
    Billets dans le blog
    51
    Par défaut
    Par exemple, oui.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Points : 117
    Points
    117
    Par défaut idée
    Je viens de penser à une chose qui risque de poser problème.
    En fait, c'est un prof qui va créer les menus à afficher.
    Ensuite après avoir créer le .jar, il met à dispo aux étudiants ce .jar.
    Le fichier xml sera dans le .jar
    Le souci, c'est que les étudiants auront accès à ce fichier .xml, y a-t-il un moyen qu'il n'est pas accès à ce fichier .xml ??
    merci!!!

  6. #6
    Membre confirmé Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Points : 552
    Points
    552
    Par défaut
    bah tu cryptes le fameux fichier xml ^^. par contre tu peux pas mettre à jour un fichier qui est dans un JAR.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Points : 117
    Points
    117
    Par défaut c'est pas un pb
    c'est pas grave si je peux pas mettre à jour le fichier dans un .jar, c pas mon objectif.

    merci pour le cryptage, je vais essayer, je vous tiendrai au courant en cas de souci

  8. #8
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 852
    Points : 22 869
    Points
    22 869
    Billets dans le blog
    51
    Par défaut
    Tu ne modifies pas le fichier XML source (celui fourni par le prof et decrivant tous les menus possibles et imaginables) mais le fichier des proprietes/preferences clients/de l'utilisateur, un second fichier de conf qui peut etre donc stocke dans un repertoire cache ou un lieu moins accessible comme le repertoire home de tout un chacun. Sinon, le noeud utilisateur dans l'API Preferences est fait pour ce genre ce choses - en plus sous UNIX c'est stocke sous forme XML...

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Points : 117
    Points
    117
    Par défaut pas trop compris
    une question,
    quand le prof aura crée sa version de son application (.jar avec fichier xml de menu inclu), comment tu fais pour mettre les préférences de l'utilisateur ?
    Si j'ai bien compris, si le boulot est bien fait de mon côté en mettant en place l'api PREFERENCE, un second fichier xml sera crée avec les préférences après la compilation du prof et donc lorsque les étudiants vont ouvrir l'application, on affiche les menus grâce au préférences ???
    c ça ?

    merci

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Points : 117
    Points
    117
    Par défaut
    je pense avoir compris, j'ai fait un petit code en créant une préférence pour voir comment ça marche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private static Preferences prefs =  Preferences.userRoot();
    public static int test() {
            int num = prefs.getInt("numero", 40);     
            return num;
    }
    dans le main, je récupère test() pour voir, ça récupère bien.
    Mais une chose, où se trouve le fichier xml ? (sous windows)

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Points : 117
    Points
    117
    Par défaut
    En fait là, je suis un peu perdu.
    Je comprend le principe de preferences et son utilité, mais dans mon cas, y a un truc que je n'arrive pas à saisir.
    Sachant que la prof va utiliser le générateur de menu que je crée, et ceci va générer un fichier xml (avec tous les menus choisis).
    Mais ce générateur est une application externe.
    Le logiciel (qu'utilise les étudiants) va devoir lire le fichier xml crée par la prof pour afficher les menus dynamiquement.
    Donc je n'arrive pas à voir en fait comment mettre en place l'api préférences.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Points : 117
    Points
    117
    Par défaut c bon
    c nikel, ça marche.
    en fait ce que j'ai fait, j'ai crée un paquetage dans mon projet "generateur de menu" avec un main etC....
    j'ouvre une fenêtre avec le choix des menus à inclure.
    je valide, je met dans les préférences.
    Ensuite j'ouvre le logiciel pour les étudiants en lisant les préférences, j'ai fait plusieurs tests !!!, ça fonctionne.
    un truc que je comprend pas, où est le fichier xml ???
    ils en gèrent pas ??

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Points : 117
    Points
    117
    Par défaut
    ça aurait été bien beau si ça marchait partout!!!!!!!!
    en fait sur ma machine, j'ai crée deux .jar (le générateur et le logiciel), quand je choisi les menus dans le générateur, ça met à jour le logiciel sans avoir à le recompiler.
    j'ai pris le .jar du logiciel, ça ne marche pas dans une autre machine (vous me direz c'est normal!!!!).

    Les préférences c'est utiles mais pas dans mon cas!!!!, merci quand même, en tout cas, je note l'API Preferences qui me sera utile dans d'autres projet!!!

    En fait y a pas le choix, je dois créer un fichier xml à partir du générateur.
    compiler le source du logiciel + xml généré, faire un .jar du logiciel.
    Comme cela, le logiciel sera obligé de lire le fichier xml au démarrage de l'application.

    Merci, a+

  14. #14
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 852
    Points : 22 869
    Points
    22 869
    Billets dans le blog
    51
    Par défaut
    Waouf, que de messages...

    Les Preferences utilisateur sous Linux utilisent du XML et sont stockees dans un sous-repertoire cache du home de l'utilisateur. Sous Windows, c'est stocke dans la base de registre dans le noeud de l'utilisateur courant.

    Ce n'etait qu'un exemple parmis d'autre d'une maniere de sauvegarder les preferences utilisateur. Tu as toujours la possibilite de generer du XML manuellement par toi meme et de le stocker ou bon te sembles (dans un fichier XML a plat, un fichier crypte et/ou compresse, dans une base de donnees, voir meme... dans les Preferences, ...).

    Quand au fait que ca ne marche pas sur un autre ordi, ca difficile pour nous d'en dire plus ; vu que nous ne connaissons pas ton code, pas le JAR ou l'API de ton prof, ni sur quelles conditions (JVM, OS, ...) le tout fonctionne, ni l'erreur generee.

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Points : 117
    Points
    117
    Par défaut
    je sais, actuellement, je suis en phase de conception, donc je n'ai pas commencé à coder, mais juste des petits bouts.
    En fait, le prof nous fournit un code source d'un logiciel à destination des étudiants.
    Il veut pouvoir créer des versions simplifiées de son logiciel en ajoutant à chaque version des menus,fonctionnalités.
    Donc, je vais devoir créer une petite application externe où il pourra choisir ses fonctionnalités et menus, et après validation, on génère un fichier xml.
    Ensuite ce fichier xml doit être intégré au logiciel initial qui va lire ce fichier et afficher les menus choisit.
    Il faut savoir que le logiciel sera téléchargé par les étudiants sur le serveur du prof.

    Je vais m'y prendre de cette façon, en fait je vais modifier le code source du logiciel afin qu'il puisse lire le fichier xml et afficher les menus. Je vais créer un .jar de ce logiciel.

    Ensuite avec l'application externe, la prof aura juste à choisir ses menus, le valider, ensuite l'intégrer au .jar du logiciel modifié.
    Puis elle dépose le logiciel sur son site.
    le tour est joué.

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Points : 117
    Points
    117
    Par défaut
    Je travaille avec Java 1.4.
    Le logiciel doit tourner sur Windows, Linux.
    en fait le problème que j'ai exposé depuis le début, n'est pas le plus gros souci!!!
    le plus gros pb est à venir :
    La prof veut qu'à partir de son jar, elle puisse créer un executable pour que les étudiant l'installe comme un logiciel lambda.
    Et là, on peut commencer à , car il en faut un pour windows et linux.
    Ensuite, il faut que l'étudiant ait la JRE ou JDK pour que ça tourne sur ça machine.
    Des tas de pb que je dois essayer de résoudre. !!!!!!!!
    Mais ça va venir , en réfléchissant un peu.

    Sinon pour ton idée sur l'API Préférences, c t une excellente idée si la prof utilisait ce logiciel juste pour elle, mais là, je pense que lire un fichier xml (crypté ou non peu importe), c'est suffisant pour mon cas, car il suffirait juste qu'elle change ce fichier avec l'application externe pour modifier une version avec différents menus.

    En tout cas merci beaucoup !!!!!,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 28/01/2009, 17h00
  2. comment lister les fichiers en fonction des droits ?
    Par Ekimasu dans le forum Administration système
    Réponses: 7
    Dernier message: 19/04/2008, 17h12
  3. [XSL] Trier les données en fonctions des parametres?
    Par titoff85 dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 11/08/2007, 08h49
  4. Réponses: 2
    Dernier message: 21/03/2007, 16h26
  5. Variable qui évolue en fonction des choix dans formulaire
    Par stefou007 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/09/2005, 22h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo