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 :

Avoir un frame unique


Sujet :

AWT/Swing Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Points : 45
    Points
    45
    Par défaut Avoir un frame unique
    Bonjour,

    Petite question rapide :

    J'ai un listener qui me permet d'ouvrir un calandrier (JCalandar), Comment faire pour qu'il n'en n'ouvre qu'un a la fois???

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Conserver une référence dessus et la nullifier quand il est refermé et tester la référence est null ou pas avant d'en ouvrir un autre. Ou la même chose avec un boolean à true ou false...
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Points : 45
    Points
    45
    Par défaut
    C'est ce que j'avai esseyé de faire avec un boolean mais je n'arrive pas a savoir si la fenetre est active ou pas.

    J'ai bien tenté isactive mais ca me renvoi toujour false.

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    et isShowing() ? Pas possible de mettre un WindowListener sur le dialog ou la fenêtre ?
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  5. #5
    Expert confirmé
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    Citation Envoyé par totonin Voir le message

    J'ai un listener
    à quoi tu as associé ton listener ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Points : 45
    Points
    45
    Par défaut
    je precise je suis sur netbeans

    le listener est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    requExeDate.addMouseListener(new java.awt.event.MouseAdapter() {
                public void mouseClicked(java.awt.event.MouseEvent evt) {
     
                    dateCalendar(evt);
     
                }
            });
    isShowing() marche bien mais le problem c'est que je ne voit pas trop comment lui dire lorsque la fenetre du calandrier est fermet il peu en ouvrir un autre...

    peut etre que je devrai creer la frame dans le MouseListener, puis l'envoyer dans dateCalendar, pour ensuite tester son ouverture/fermeture
    Bien sur ca ne peu pas marché vu que je recreer la frame a chaque foi que je clique dans la zone de la date...

  7. #7
    Expert confirmé
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    Citation Envoyé par totonin Voir le message
    le problem c'est que je ne voit pas trop comment lui dire lorsque la fenetre du calandrier est fermet il peu en ouvrir un autre.../
    je suppose que tu as utiliser un boolean tel que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    public void mouseClicked(java.awt.event.MouseEvent evt)
    {
     
      if(! calander_ouvert )
      {
          ton_calender.sertVisible(true);
           calander_ouvert = true;
       }
    }
    après lors du fermeture de ton JClalender ( evenement closing )tu fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            calander_ouvert = false;

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Points : 45
    Points
    45
    Par défaut
    oui c'est plus ou moins ce que j'ai esseyé de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    requExeDate.addMouseListener(new java.awt.event.MouseAdapter() {
                public void mouseClicked(java.awt.event.MouseEvent evt) {
                	JFrame frame = new JFrame("Calendar"); 
                	if(calendarOpen)
                    dateCalendar(evt,frame);
     
                }
            });
    Mais le problem c'est que dans la fonction dateCalendar, je n'arrive pas a lui dire lorsque la fenetre ferme mettre " calendarOpen = true "

    Tu as parlé de "evenement closing" je ne voi pas trop pourrai tu developper STP

  9. #9
    Expert confirmé
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    Citation Envoyé par totonin Voir le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dateCalendar(evt,frame);
    c'est quoi le role de cette méthode ?

    ...

    tu as l'objet frame de type JFrame je suppose , alors tu lui associe un listener
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    frame.addWindowListener(new WindowAdapter()
    		    	{
    					public void windowClosing(WindowEvent e)
    					{
                                                 // quand la fenêtre est entrain de se fermer mettre la varibale a false
    						calander_ouvert = false;
     
     
    					}
    		    	}
     
    		    	);

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Points : 45
    Points
    45
    Par défaut
    dateCalendar(evt,frame);

    C'est la methode qui me permet de creer un calendrier en utilisant JCalandar. Ca m'ouvre une frame

    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
    private void dateCalendar(java.awt.event.MouseEvent evt) {                              
     
            JFrame frame = new JFrame("Calendar");
     
            frame.setIconImage(image);
     
            final JCalendar dateChooser = new JCalendar();
     
            frame.add(dateChooser);
     
            frame.pack();
     
            calendarOpen = false;
     
            // When click the textFiled
            // Initialize the date as today
            final Date date = dateChooser.getCalendar().getTime();
            requExeDate.setText(new SimpleDateFormat("yyMMdd", Locale.ENGLISH).format(date));
     
    //        Locale locale = Locale.getDefault();
    //        DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.SHORT, Locale.FRANCE);
     
            // Monitor the change of date property
            dateChooser.addPropertyChangeListener(new PropertyChangeListener() {
                //@Override
     
                public void propertyChange(PropertyChangeEvent e) {
                    // get current year, month and day
                    int year = dateChooser.getYearChooser().getYear();
                    int month = dateChooser.getMonthChooser().getMonth() + 1;
                    int day = dateChooser.getDayChooser().getDay();
     
                    // make the new date in format of
                    // year/month/day
                    // this format is obligatoire.
                    String sDate = new Integer(year).toString() + "/" + new Integer(month).toString() + "/" + new Integer(day).toString();
     
                    Date newDate = new Date(sDate);
                    // set the new Date
                    requExeDate.setText(new SimpleDateFormat("yyMMdd", Locale.ENGLISH).format(newDate));
                }
            });
     
            frame.addWindowListener(new WindowAdapter() {
    			public void windowClosing(WindowEvent e) {
                    // quand la fenêtre est entrain de se fermer mettre la varibale a false
    				calendarOpen = true;
    			}
    		}
     
    		);
     
            if (calendarOpen){
            //frame.add(requExeDate, BorderLayout.WEST);
            frame.setLocationRelativeTo(null); // pour centrer
            frame.setVisible(true);}
     
     
        }  
    }
    Au faite ca marche mais pour cela il faut que je passe mon code sur Eclipse car avec netbeans une partie du code est bloqué (J'ai des interface que j'ai generé automatiquement avec netbeans)

    j'ai rajouté ca dans le listener
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    requExeDate.addMouseListener(new java.awt.event.MouseAdapter() {
    			public void mouseClicked(java.awt.event.MouseEvent evt) {
    				JFrame frame = new JFrame("Calendar");
    				if (calendarOpen)
    					dateCalendar(evt, frame);
     
    			}
    		});

  11. #11
    Expert confirmé
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    avant tous , ca marche ou il ya encore un problème ?


    Citation Envoyé par totonin Voir le message
    dateCalendar(evt,frame);

    C'est la methode qui me permet de creer un calendrier en utilisant JCalandar. Ca m'ouvre une frame
    je comprend mais il ya 2 argument dans la méthode
    et je comprend pas pourquoi tu met evt qui est de type java.awt.event.MouseEvent comme paramétre

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Points : 45
    Points
    45
    Par défaut
    evt a ete generer automatiquement par netbeant. (J'ai eut la flemme de l'enlevé)

    Si non Ca marche maintenant aussi bien pour eclipse que pour Netbeans

    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
        private void dateCalendar(java.awt.event.MouseEvent evt) {                              
     
            JFrame frame = new JFrame("Calendar");
     
            //Si il n'y a pas de calendrier ouvert on continue
     
            if (calendarOpen) {
     
                frame.setIconImage(image);
     
                final JCalendar dateChooser = new JCalendar();
     
                frame.add(dateChooser);
     
                frame.pack();
     
                calendarOpen = false;
     
                // When click the textFiled
                // Initialize the date as today
                final Date date = dateChooser.getCalendar().getTime();
                requExeDate.setText(new SimpleDateFormat("yyMMdd", Locale.ENGLISH).format(date));
     
    //        Locale locale = Locale.getDefault();
    //        DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.SHORT, Locale.FRANCE);
     
                // Monitor the change of date property
                dateChooser.addPropertyChangeListener(new PropertyChangeListener() {
                    //@Override
     
                    public void propertyChange(PropertyChangeEvent e) {
                        // get current year, month and day
                        int year = dateChooser.getYearChooser().getYear();
                        int month = dateChooser.getMonthChooser().getMonth() + 1;
                        int day = dateChooser.getDayChooser().getDay();
     
                        // make the new date in format of
                        // year/month/day
                        // this format is obligatoire.
                        String sDate = new Integer(year).toString() + "/" + new Integer(month).toString() + "/" + new Integer(day).toString();
     
                        Date newDate = new Date(sDate);
                        // set the new Date
                        requExeDate.setText(new SimpleDateFormat("yyMMdd", Locale.ENGLISH).format(newDate));
                    }
                });
                //frame.add(requExeDate, BorderLayout.WEST);
                frame.setLocationRelativeTo(null); // pour centrer
                frame.setVisible(true);
            }
     
            frame.addWindowListener(new WindowAdapter() {
     
                public void windowClosing(WindowEvent e) {
                    // quand la fenêtre est entrain de se fermer mettre la varibale a false
                    calendarOpen = true;
                }
            });
     
        }
    Merci Beaucoup

  13. #13
    Expert confirmé
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    Citation Envoyé par totonin Voir le message
    evt a ete generer automatiquement par netbeant.
    c'est ce qui ma fait orienter vers eclipse.
    ...
    @++

  14. #14
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Tu ne préfère pas utiliser un JDialog modal plutot qu'une JFrame ?
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

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

Discussions similaires

  1. avoir les droits sysadmin uniquement en lecture
    Par Hotfirenet dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 07/03/2008, 10h40
  2. Requete pour avoir une liste d enregistrements uniques
    Par toto92 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 17/11/2007, 08h46
  3. Réponses: 8
    Dernier message: 22/08/2007, 14h33
  4. Réponses: 15
    Dernier message: 25/06/2006, 00h30
  5. avoir des clef uniques
    Par car dans le forum ASP
    Réponses: 23
    Dernier message: 04/08/2005, 16h01

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