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

Interfaces Graphiques en Java Discussion :

[Map] comment generer une interface graphique dynamiquement?


Sujet :

Interfaces Graphiques en Java

  1. #1
    hby
    hby est déconnecté
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Février 2006
    Messages : 35
    Points : 22
    Points
    22
    Par défaut [Map] comment generer une interface graphique dynamiquement?
    Bonjouuuur tout le monde;

    Alors je veux generer une interface graphique dynamiquement par exemple la frame de creation d'un etudiant ,je vous expose mon probleme;
    par exemple je suis dans une frame qui me permet de choisir entre differentes tables(je veux dire par la ex la classe etudiant ,prof......)
    et je veux qu a l instant ou je clic sur ok je sors une frame ou je peux entrer mes informations sur le nvel etudiant crée.

    donc a l instant ou je clic je fais passer un objet a une certaine classe qui va créer cette fenetre. cet objet a deux attributs le MainObject et le viewFormat tous les deux de type Hashmap (je suis novice dans Map).

    le mainObject contiendra null (parce qu'il n est pas encore crée) mais le ViewFormat contiendra tous les champs et leurs types

    donc je veux pouvoir créer des JLabel et des JTextField ou desJcheckbox comme je veux dans ma frame et en plus mettre mes actions comme save,exit,cancel........

    tout cela est il possible
    Aidez moi SVP c est tres urgent
    merci pour votre attention

  2. #2
    Membre averti Avatar de let_me_in
    Inscrit en
    Mai 2005
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 441
    Points : 437
    Points
    437
    Par défaut
    pourquoi ne pas creer deux classe, Etudiant et Prof chacune etendant JFrame, et tu y mets les composants adequats pour chaque fiche, et lors du click sur le bouton du choix tu fais un new Etudiant() ou un new Prof()?

  3. #3
    hby
    hby est déconnecté
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Février 2006
    Messages : 35
    Points : 22
    Points
    22
    Par défaut
    bonjour
    pourquoi ne pas creer deux classe, Etudiant et Prof chacune etendant JFrame, et tu y mets les composants adequats pour chaque fiche, et lors du click sur le bouton du choix tu fais un new Etudiant() ou un new Prof()?
    justement, je ne veux pas que ce soit statique(tres simple), je veux avoir une seule frame qui lors du clic sur le bouton me genere l'interface creer etudiant de meme pour le prof ou pour un autre use case comme search edit ou delete.

  4. #4
    Membre habitué Avatar de minus
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 153
    Points : 177
    Points
    177
    Par défaut
    Je serais toi je ferais un CardLayout dans ma frame principale avec des onglets Prof et Etudiant permettant de passer de l'un a l'autre... mais ca reste statique je pense

  5. #5
    hby
    hby est déconnecté
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Février 2006
    Messages : 35
    Points : 22
    Points
    22
    Par défaut
    Rebonjour
    un CardLayout dans ma frame principale avec des onglets Prof et Etudiant permettant de passer de l'un a l'autre...
    justement oui ca reste statique et en plus ttes mes informations sont sur le serveur alors si je dispose de 100 tables je pourrais pas les charger ttes dans des onglets.

    je pense que les onglets me seront utiles lorsque g une relation avec une autre classe.


  6. #6
    hby
    hby est déconnecté
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Février 2006
    Messages : 35
    Points : 22
    Points
    22
    Par défaut
    bonjour;
    est ce que quelqu un sait comment générer une interface graphique dynamiquement????

    SVP aidez moi c tres urgent

  7. #7
    Membre habitué
    Inscrit en
    Mars 2006
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 137
    Points : 148
    Points
    148
    Par défaut
    je comprends pas trop ton besoin de charger tes interfaces dynamiquement..
    mais bon moi j'imagine une méthode (là je te la fais un peu en freestyle)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    public JPanel buildFrame(HashMap tonHasMap,mainObject)
    {
            JPanel returnPanel;
     
            // imaginons que ce soit une hastable que tu récupéres (avec en clé le nom du champ et en valeur le type)
            Hashtable hashtableComposants = tonHasmap.get(mainObject);
     
            Enumeration enumerationObject = hashtableComposants.keys() ;
     
     
            For (i=0;o<enumerationObject.hasMoreElements();i++)
            {
                   String cleComposant = (String)enumerationObject.nexElement();
     
                    // la je ne suis pas sûr que ça marche
                    cleComposant composant = (cleComposant) hashtableComposants.get(cleComposant);
     
                   returnPanel.add(composant);
            }
     
    return returnPanel;
    }

    ce serait un peu un truc dans cette philosophie là....

    Tiens moi au courant
    [/code]

  8. #8
    hby
    hby est déconnecté
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Février 2006
    Messages : 35
    Points : 22
    Points
    22
    Par défaut
    bonjour
    merci pour ta reponse

    bon j ai fait un bout de code. je pense que ca peut interesser qques uns
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    package modele;
    import javax.swing.*;
    import com.borland.jbcl.layout.*;
    import java.util.*;
     
    public class FrameAdaptable extends JFrame {
    ClassModel cM;
    //************************* le constructeur***************************************************
        public FrameAdaptable(ClassModel c){
        cM = c;
        try{
          jbInit();
        }
        catch(Exception ex){
          ex.printStackTrace();
        }
        }
       //**************************************   la methode jbInit********************************
        void jbInit() throws Exception{
         this.setTitle(cM.getService()+" "+cM.getMainObject().getClassName());
         this.setSize(600,700);
       System.out.println(this.getSize());
          JPanel cc =(JPanel) this.getContentPane();
         cc.setLayout(new XYLayout());
         //************   les components
          int x=35;
          int y=44;
          int i=79;
          int j=77;
         Set entrees=cM.getViewFormat().getC().entrySet();
          Iterator iterateur =entrees.iterator();
          while(iterateur.hasNext())
          {
            Map.Entry entree =(Map.Entry) iterateur.next();
            JTextField tx=new JTextField(entree.getKey().toString());
            tx.setEditable(true);
            tx.setAutoscrolls(true);
     
            JLabel lab=new JLabel(entree.getKey().toString());
     
            cc.add(lab, new XYConstraints(35,i, 119, 30));
            i+=y;
            cc.add(tx,new XYConstraints(181, j, 132, 27));
            j+=y;
     
          }// fin de while
      j+=x;
      //**********  les actions
      int k=0;
       Set ent=cM.getViewFormat().getAcL().entrySet();
      Iterator iter =ent.iterator();
      while(iter.hasNext())
      {
        Map.Entry entre =(Map.Entry) iter.next();
        JButton jB=new JButton(entre.getKey().toString());
         cc.add(jB,new XYConstraints(70+k ,j,100,27));
         k+=150;
      }// fin de while
     
            SwingUtilities.updateComponentTreeUI(this);
            this.setVisible(true);
     
          }// fin de jbInit
     
    }
    bon ce n est que le debut je vais l ameliorer

    bonne journée a tous

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

Discussions similaires

  1. [Débutant] Comment faire une interface graphique ?
    Par hanane78 dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 29/12/2006, 09h43
  2. Réponses: 2
    Dernier message: 09/08/2006, 14h02
  3. Réponses: 5
    Dernier message: 07/12/2005, 10h41
  4. comment fonctionne une interface graphique???
    Par elekis dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 27/10/2004, 23h10
  5. [VB.Net] Comment generer une page html dynamiquement ?
    Par Anonymous dans le forum ASP.NET
    Réponses: 3
    Dernier message: 13/03/2003, 10h22

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