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 :

comment aborder un projet d'un point de vue dynamique ?


Sujet :

AWT/Swing Java

  1. #1
    Membre confirmé
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Points : 642
    Points
    642
    Par défaut comment aborder un projet d'un point de vue dynamique ?
    Bonjour,
    Je me pose cette question meme si je commence à avancé dessus en esperant que ce soit une des bonne manniere d'y arriver.

    Je suis sur mon premier projet swing avec interface Dynamique sur laquelle l'on pourra rajoute des JPanels sans retouche au code.


    pour cela je suis parti sur un fichier de config en xml ou ma DTD reste encore a definir qui me permettra de definir mes differents JLabels , JTextfield ...
    fomules de caculs, contrainte ect....

    le probleme que j'ai rencontre en faisant des tests est la liason entre mes composant et le nom que je voulais leur attribue
    JTextFiled toto = new JTextFiled();
    ou toto ne peut etre un nom defini dans mon fichier de config
    j'ai donc utilisé un Hashtable (nomDansLaConnfig,toto).
    et des Filtre sur mes Jtextfiled pour en evite les tests par la suite (sur conseil d'une personne ayant deja fait du dynamique soit quoi je n'y aurai jamais penser ce qui enleve pas mal d'erreur a gerer)

    Dond ma question est la suivante pour les personnes qui se sont deja retrouvé dans cetet situation :
    -sur quel type de fichier se sont-ils reposés ?
    -comment ont-ils abordé la liason fichier de config/ objet avec biensur la contrainte de reste le plus générique possible.



    voilu en esperant que j'ai été assez clair meme si j'en doute

  2. #2
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    Je te rassure, tu a été assez clair (comparé à un autre message que j'ai vu, situé pas très loin du tiens ).
    Pour un interface dynamique, je n'ai qu'un conseil (je n'en ai jamais vraiment fait moi même, sauf un programme avec des plugins...), regarde la source de Jext, edi
    développé par Romain Guy, qui selon ce que j'ai vu, créer des menus a partir d'un fichier xml.
    Un autre conseil, créer une classe qui va servir d'interface ( pas de jeu de mot s'il vous plait ) avec ton fichier xml. Imagine qu'elle s'appelle XMLLoader.
    Pour créer 3 jtextfield avec un texte par défault différent à chaque fois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    JTextField temp = null;
    String[] defaultsValues = myXMLLoader.getDefaultsValues();
    for(int i = 0; i < defaultsValues.length; i++) {
    temp = new JTextField(defaultsValues[i]);
    monPanel.add(temp);
    }
    Tu auras donc 3 JTextfield différents, mais une seule variable.
    Mais, c'était vraiment ça ta question ?

  3. #3
    Membre confirmé
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Points : 642
    Points
    642
    Par défaut
    j'ai bien defini une "interface" pour mon fichier xml.
    dans une premiere partie je decrypte temporairement le config.xml (securite oblige grrr)
    si on repart sur ton exemple des JTexField

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <composant>
        <JTexField name="toto" value="il fait beau" />
        <JTexField name="tata" value="il fait tres beau" />
        <JTexField name="tutu" value="il fait tres tres beau" />
    </composant>
    avec JDom je recupere la liste des enfants de la racine (les JTextField )que je retourne a ma classe devant me cree les composants.

    pour ce qui est de ma question comment faire le lien entre le name "toto" et le value "il fait beau"
    la seul solution que j'ai trouvé est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     JTexField temp = new JTexField("il fait beau");
     HashTable hash = new HashTable();
     hash.put(name,temp);
    -je ne sais pas si cela est la meilleur solution ou si il y en a de plus evidente que je ne vois pas et plus simple pour recuperer des données saisies

    -si le choix d'un fichier xml est ce qu'il y a de mieux pour une interface dynamique ce que je ne vois pas forcement pour le moment

    bref les conseils et petites astuces si il y en a pour aborder ce genre de projet

    edit : je regarde l'application que tu ma propose en lien

  4. #4
    Membre confirmé Avatar de spekal
    Inscrit en
    Mai 2005
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 502
    Points : 510
    Points
    510
    Par défaut
    Tu trouveras pas mal de choses dans ce style à Open Source XML UI Toolkits in Java.

    Je pense que celle qui se rapproche le plus de ce que tu cherches est SWIXML, avec Building GUIs with SwiXml pour te mettre en jambe. Bien sûr, si tu veux comprendre comme c'est codé, il faudra aller voir les sources.

    Pour répondre directement à ta question, la manière habituelle est de travailler avec la reflexion, qui te permet de découvrir des variables dynamiquement.

  5. #5
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Points : 445
    Points
    445
    Par défaut
    Concernant ton problème, l'idée donnée par link256 est une bonne idée que j'ai moi même implémentée il ya quelques années.
    Tu instancies tes objets à partir d'une réference unique, et tu stock tes objets dans un tableau (ArrayList, Vector, ou hashTable, etc.).

    Ensuite, pour faire appel à ton objet, tu fait un parcours de ton tableau avec le nom (qui était présent dans ton XML biensur) de ton objet en paramètre.

    Par contre, je te conseil plutôt l'utilisation de SAX plutôt que DOM, qui est un paser évenementiel (donc pas de chargement en mémoire de tout ton arbre XML).

    Régis.
    L'interêt du doute est que cela fait avancer.
    (parenthèses)Je suis à la recherche d'un emploi sur Valence(26) et ses environs.
    mon cv:
    http://charegis.netcv.org/

  6. #6
    Membre confirmé
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Points : 642
    Points
    642
    Par défaut
    merci pour vos liens vais y jeter un oeil.
    swixml donne vraiment des truc tres tres sympas mais faut que je regarde encore le code source qui est derriere

    pour ce qui est Sax vis a vis de JDom sur les fichiers xml de petite arborescence , on va dire une centaine de lignes va-t-il y avoir une grosse difference de performence de chargement de données ?

    Pour répondre directement à ta question, la manière habituelle est de travailler avec la reflexion, qui te permet de découvrir des variables dynamiquement
    c'est clair que la partie reflexion va etre primordiale meme si pense bien m'arracher les cheveux.

    je te donne un exemple que je n'ai pas encore resolu

    jai 2 champs A et B qui sont des JTextField a saisie.
    A doit etre inferieur à 10 (donc ca c'est pas trop dur )
    B doit etre inferieur a 8 ou inferieur au champ saisie dans AJTextField.
    ce qui donnerai :
    sasie de B <= min ( 8, saisie de AJTextField)
    pour mettre ca dans un test de maniere generique je planche encore

  7. #7
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Points : 445
    Points
    445
    Par défaut
    Citation Envoyé par link256
    je te donne un exemple que je n'ai pas encore resolu

    jai 2 champs A et B qui sont des JTextField a saisie.
    A doit etre inferieur à 10 (donc ca c'est pas trop dur )
    B doit etre inferieur a 8 ou inferieur au champ saisie dans AJTextField.
    ce qui donnerai :
    sasie de B <= min ( 8, saisie de AJTextField)
    pour mettre ca dans un test de maniere generique je planche encore
    Bof, en réflechissant un petit peu cela ne me parait pas insurmontable non plus!
    Tu mets un focusListener sur ton AJtextFeild et tu récupère la saisie dès la perte du focus (tu as donc un temps d'avance sur l'utilisateur).
    Tu mets un listener sur ton BJtextFeild qui surveille que la saisie est bien inferieure à la donnée saisi en A(récuperée juste avant) et < 8.
    Tant que la donnée n'est pas valide soit tu interdit la frappe, soit tu préviens l'utilisateur qu'il faut une donnée inferieur à: "saisie_en_A".

    Regis.
    L'interêt du doute est que cela fait avancer.
    (parenthèses)Je suis à la recherche d'un emploi sur Valence(26) et ses environs.
    mon cv:
    http://charegis.netcv.org/

  8. #8
    Membre confirmé
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Points : 642
    Points
    642
    Par défaut
    me suis mal exprimer .

    c'est au niveau du fichier de config xml pour que le code puisse y repondre au niveau de la recup de la saisie et de l'actionListener

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

Discussions similaires

  1. [2.x] Quelques renseignements sur comment aborder mon projet
    Par SAmpistaroy dans le forum Symfony
    Réponses: 1
    Dernier message: 18/05/2013, 11h12
  2. [2.0] Comment implémenter un projet de ressources ?
    Par Louis-Guillaume Morand dans le forum Framework .NET
    Réponses: 5
    Dernier message: 01/07/2005, 16h57
  3. Comment développer un projet à plusieurs ?
    Par Clandestino dans le forum Outils
    Réponses: 7
    Dernier message: 07/01/2005, 08h29
  4. [Debutant(e)][eclipse] Comment organiser ses projets ?
    Par Javanaute dans le forum Eclipse Java
    Réponses: 9
    Dernier message: 09/04/2004, 10h07
  5. Comment compiler un projet en ligne de commande ?
    Par mathieutlse dans le forum EDI
    Réponses: 3
    Dernier message: 11/07/2003, 13h32

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