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

Agents de placement/Fenêtres Java Discussion :

Problème ActionListener et placement d'objets


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Problème ActionListener et placement d'objets
    Bonsoir,

    Voila, je voulais savoir, s'il était possible, de gérer le positionnement de bouton dans la classe ActionListener() ?

    Parce que pour le moment moi ça ne marche pas, et j'aurais voulus savoir comment faire, pour pouvoir changer l'interface de ma fenêtre en fonction de ce sur quoi l'user clique comme menu, boutons etc . Changer l'interface, c'est à dire afficher des nouveaux boutons, labels et enlever les autres

    Ou alors faut il créer plusieurs panneau (ou container) ? Que l'on ajoute à la fenêtre en fonction de ce sur quoi clique l'user ?

    Je vous remercie

    Simon.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je me suis peut être mal exprimé

    J'ai essayé une autre technique :

    J'ai crée une classe Panneau1 (étend JLabel) avec 2 attributs, un bouton et un label.
    Une autre classe Panneau2 (étend JLabel) avec 2 attributs, un bouton et un label.
    Une classe Fenêtre (étend JFrame), avec une barre de menu des menus et des items. Cette classe fenêtre contient aussi les attributs suivants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        private Panneau1 p1;
        private Panneau2 p2;
    Instanciés :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            p1 = new Panneau1();
            p2 = new Panneau2();
    A la fin du constructeur j'ajoute p1 en temps que panneau à ma fenêtre :

    this.add(p1);

    J'ai aussi un main() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            Fenetre f = new Fenetre();
            f.setVisible(true);
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.setSize(1000, 500);
    Mais comme je veux pouvoir afficher d'autres panneaux en fonction de ce sur quoi je clique, j'ai fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        public void actionPerformed(ActionEvent e) {
     
            if(e.getSource() == afficherStatistique)
            {
                System.out.println("STATisTiques 1");
                this.add(p2);
                System.out.println("STATisTiques 2");            
            }
        }
    Ce qui pour devrais faire :
    Quand je clique sur l'item afficherStatistique qui est inclus dans le menu Statistique, j'affiche le texte, j'ajoute le panneau p2 à la fenêtre et ensuite j’affiche un texte.

    Les deux textes s'affiche, le panneau ne change pas

    Comment faut il faire ?

    Pour info : J'utilise le GridBagLayout comme gestionnaire de placement.

    Merci de votre aide

  3. #3
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 343
    Par défaut
    Bonjour,

    je pense qu'il est préférable de créer tous les objets à la construction de l'interface graphique, puis de jouer avec la propriété setVisible() de chacun d'eux, en fonction des évènements.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Salut,

    En effet, mais réussis à trouver entre temps, j'ai fais ceci par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            if(e.getSource() == afficherStatistique)
            {
                this.getContentPane().removeAll();
                this.getContentPane().add(panStatistique);
                this.getContentPane().validate();
                panStatistique.repaint();    
                this.pack();
            }
    Quand je clique sur l'item "Afficher" du menu "Statistique", je charge un nouveau panneaux
    Sa marche très bien

    Merci quand même

Discussions similaires

  1. Problème de lock d'un objet recordset
    Par aircamus dans le forum IHM
    Réponses: 2
    Dernier message: 12/06/2006, 15h17
  2. Solide problème avec visualisation d'un objet 3D
    Par vdumont dans le forum OpenGL
    Réponses: 2
    Dernier message: 12/05/2006, 16h43
  3. Réponses: 2
    Dernier message: 05/04/2006, 13h29
  4. [TTreeView] Problème avec les pointeurs d'objet
    Par BlackWood dans le forum Composants VCL
    Réponses: 2
    Dernier message: 02/07/2004, 15h31
  5. [C#] Problème pour l'appel d'objet...
    Par AntiSAL dans le forum Windows Forms
    Réponses: 2
    Dernier message: 14/06/2004, 10h59

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