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

 Java Discussion :

Développement d'interface graphique


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 33
    Par défaut Développement d'interface graphique
    Bonjour,

    Je suis actuellement en train de développer une petite application en suivant le design pattern MVC et j'aurais quelques questions ou plutôt une "grosse":

    J'ai une première fenêtre de connexion avec un bouton OK et ensuite je voudrais passer sur une autre "chose" (vue, fenêtre ?) ou je n'aurais que des listes déroulante. Ma question est la suivante :
    Vaut-il mieux refaire une fenêtre de zéro en faisant fermer la première par le contrôleur ou faire une autre vue qui sera ou non visible en fonction de ce que décide le contrôleur ou encore tout mettre dans ma première vue et mettre mes composant en non visible ou visible et changer en fonction du besoin via le contrôleur ?

    D'avance merci.
    Pavel

  2. #2
    Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Par défaut
    Bonjour,

    Si j'étais à votre place je créerais une nouvelle fenêtre pour cela, dans le cas de la réutilisation dans un autre programme il suffit que je prenne la classe de la nouvelle fenêtre.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 33
    Par défaut
    et apres comment l'implémenter ?
    Je fais un fenetre1.isVisible(false) et fenetre2.isVisible(true), sachant que les deux doivent se communiquer des informations via le controleur ?

    D'avance merci
    Pavel

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2003
    Messages : 69
    Par défaut
    Pourquoi ne pas conserver ta JFrame et ne modifier que son contenu, construit sur des JPanel. Cela éviterait de voir ton application flasher lors de la substitution des JFrame.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // Passage d'une "vue" à l'autre
    jframe.remove(jpanel1);
    jframe.add(jpanel2);
    jframe.repaint();

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 33
    Par défaut
    C'est une excellente idée, je n'y avais pas du tout pensé. En revanche une autre question se pose dans mon petit esprit :
    Est-on d'accord que le code que tu m'as donné doit être mis dans le contrôleur et non dans le setter de ma JFrame ?

    Edit : J'ai un Jpanel avec des texte à saisir par l'utilisateur mais lorsque je vais faire ton remove(jpanel), les informations qui auront été inscrites seront perdu ? il faudra que je les stock dans une variable le temps de leur utilisation ?

    D'avance merci
    Pavel

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2003
    Messages : 69
    Par défaut
    Oui, ton code se trouverait là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public class JPanel1 implements ActionListener
    {
    ...
        public void actionPerformed(ActionEvent e)
        {
            // si le bouton ok est pressé, changer l'état de la jframe
            if (e.getSource() == ok) jframe.setStatus(2);
        }
    }
    Et dans ta fenêtre principale t'aurais :

    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
     
    public class MyJFrame
    {
        private int status;
        ....
        // modifie l'état courant de la fenêtre
        public void setStatus(int newStatus)
        {
            switch (newStatus)
           {
               ...
               case 2 :
                   remove(panel1);
                   add(panel2);
                   break;
               ....
           }
           status = newStatus;
           repaint();
        }
    }
    Et le fait d'enlever à la jframe la référence à ton panel ne devrait pas altérer l'objet en tant que tel il me semble.

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 33
    Par défaut
    j'ai un souci : dans mon code je fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    vue = new VueI5Copy(controleur);
    			vue.display();
    			JPanelVueI5CopyId jp = new JPanelVueI5CopyId(controleur);
    			vue.remove(vue.getPanCentre());
    			System.out.println(jp.toString());
    			vue.add(jp);
    			vue.repaint();
    mais lorsque mon repaint() se fait je nai plus aucun panel visible au centre. Auriez vous une idée ?
    Mon "System.out.println(jp.toString());" retourne sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vues.JPanelVueI5CopyId[,0,0,0x0,invalid,layout=javax.swing.SpringLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=]
    Je suppose que le "invalide" est anormal. Seriez vous pourquoi ?

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 33
    Par défaut
    J'ai trouvé : il suffit de faire un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    maVue.revalidate();
    maVue.repaint();
    Une autre question me vient : peut-on mettre ce code dans le setter de ma vue ? (dans ma classe j'ai une variable de classe pour ce panel)

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/12/2008, 10h22
  2. [Débutant] Développement des Interfaces Graphiques
    Par djtsou dans le forum Interfaces Graphiques
    Réponses: 13
    Dernier message: 29/03/2008, 12h34
  3. Développement d'interface graphique
    Par observ dans le forum C++
    Réponses: 22
    Dernier message: 02/09/2006, 11h31
  4. outil pour développer un interface graphique??
    Par vasilov dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 25/06/2005, 18h11

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