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 :

le bouton n'ouvre qu'une seule fois la fenetre ?


Sujet :

AWT/Swing Java

  1. #1
    Membre régulier Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Points : 73
    Points
    73
    Par défaut le bouton n'ouvre qu'une seule fois la fenetre ?
    Bonjour,

    j'ai un souci dans mon prog il ya un bouton qui me permet d'ouvrir une JFrame, or si l'utilisateur clique 4 fois de suite, il s'en ouvre 4 dont 3 vierges,
    (la derniere a un contenant)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    bouton = new JButton("Configurer les parametres graphiques");
    		bouton.setBounds(400,425,500,40);
    		bouton.addActionListener(new ActionListener() {
    				public void actionPerformed(ActionEvent arg0) {
    					new FenetreGrapheParam(app);
    					}
    		});

    comment faire pour que si l'utilisateur clique plusieurs, une seule fenetre et la meme reste présente sans que d'autre s'ajoute ?

    Merci bcp à ceux qui m'aideront

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Points : 288
    Points
    288
    Par défaut
    Salut il y a deux solutions, soit tu interdis à l'utilisateur de cliquer plusieurs fois de suite sur le bouton (tant que la fenetre est affiché...)
    soit tu mémorise l'instance de ta fenetre et tu teste ensuite si elle est null ou non...
    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
     
    private FenetreGrapheParam myFenetre = null;
    ....
    bouton = new JButton("Configurer les parametres graphiques");
    		bouton.setBounds(400,425,500,40);
    		bouton.addActionListener(new ActionListener() {
    				public void actionPerformed(ActionEvent arg0) {
    					if (myFenetre == null) {
    						myFenetre = new FenetreGrapheParam(app);
    // ne pas oublier une fois que le fenetre sera fermé de faire myFenetre = null
    					} else {
    						// tu l'a met en 1er plan...
    					}
    				}
    });

  3. #3
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 83
    Points : 96
    Points
    96
    Par défaut
    soit tu interdis à l'utilisateur de cliquer plusieurs fois de suite sur le bouton (tant que la fenetre est affiché...)
    soit tu mémorise l'instance de ta fenetre et tu teste ensuite si elle est null ou non...
    Dans la même logique, tu peux tester si t'as frame.isVisible() = true ou false.

  4. #4
    Membre régulier Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Points : 73
    Points
    73
    Par défaut Attendez ça me met un warning que je comprends pas
    ça me met ça a cause de show

    the method show(boolean) from the type Component is deprecated

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    		bouton.addActionListener(new ActionListener() {
    				public void actionPerformed(ActionEvent arg0) {
    					if (maFen == null) 
    					{
    						maFen= new FenetreGrapheParam(app);
    					}
    					else
    					 { /*La Fenetre revient au premier plan si on a deja cliqué dessus*/
    						maFen.show(true); 
    					}}
    		});
    pourtant ça marche mais mon patron veut pas de warning !

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Points : 288
    Points
    288
    Par défaut
    pourquoi tu n'utilise pas directement setVisible (true) ou false ?
    c'est ce qu'ils disent dans la doc...
    http://java.sun.com/j2se/1.4.2/docs/...nt.html#show()

  6. #6
    Membre régulier Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Points : 73
    Points
    73
    Par défaut bon ok ca va
    merci !
    bonne journée

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

Discussions similaires

  1. Code qui permet à l'utilisateur de cliquer sur un bouton une seule fois
    Par FLORE2222 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 6
    Dernier message: 18/03/2012, 10h31
  2. Msgbox qui s'ouvre une seule fois
    Par dan016 dans le forum VBA Access
    Réponses: 1
    Dernier message: 03/12/2007, 13h31
  3. bouton valide une seule fois
    Par lolothom dans le forum IHM
    Réponses: 8
    Dernier message: 26/06/2007, 12h49
  4. exécution d'un bouton qu'une seule fois
    Par julio02200 dans le forum Access
    Réponses: 9
    Dernier message: 15/06/2006, 10h25
  5. Réponses: 2
    Dernier message: 30/11/2004, 11h48

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