IsVisible();

Résolu
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 - 4 mars 2007 à 18:07
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 - 5 mars 2007 à 18:49
Bonjour a tous.
Voila, je suis entrain de faire une appli dans laquelle il ya plusieurs JFrame (une par class).
J'ai une JFrame principale et 4 autres (auxilieres) qui sont appellé par la principale (lorsque l'utilisateur le demande).
je veux que ma JFrame principale ne soit plus visible (.setVisible(false);) lorsqu'une des JFrame auxiliere est visible.

j'ai essayer plusieurs code mais aucun ne donnais ce que j'esperais.
Voila un des codes:
   //J'appel et affiche la class Option1
   new Option1.setVisible(true);
   //Je cache la JFrame principale (this)
  this.setVisible(false);
   //Dans une boucle, je test si Option1 est visible.
  Thread FenetreIsVisible = new Thread(){
   public void run(){
    while(Ouvrir1.isVisible()){}
   }
  };
   FenetreIsVisible.start();
   //Lorsqu'elle n'est plus visible, on reaffiche la JFrame principale (this).
  this.setVisible(true);

java me genere une exception :
   non-static method isVisible() cannot be referenced from a static context

je ne compend pas, car le code que j'ai mit au-dessus, est dans une methode de type void (public void AppelOption1(){...})

est ce que vous sauriez pourquoi, et comment est ce que je peux faire pour que cela fonctionne ?
merci.

10 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
5 mars 2007 à 17:32
Normal dans ton code, tu créer une nouvelle instance de option1 à laquelle tu applique le listener mais uniquement sur cette nouvelle instance, il faut que tu fasse :

Option1 TaFrame = new Option1();
TaFrame.getFrame().addWindowAdapter(...);
3
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
5 mars 2007 à 18:49
Bonjour.
j'ai trouver comment il fallait proceder:

Code avant :
TaFrame.addWindowAdapter(new WindowAdapter {
    public void WindowClosed(...) {
       // la fenêtre est fermée
    }
});

Code apres:
TaFrame.addWindowListener(new WindowAdapter () {
    public void windowClosed(WindowEvent evt) {
       // la fenêtre est fermée
    }
});

je te remerci pour ton aide.
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
4 mars 2007 à 18:23
Aïe ! Au lieu de faire un while(isVisible) qui te prend 100 % du proc, il vaux mieux ajouter un listener à ta frame principale :
TaFrame.addWindowAdapter(new WindowAdapter {
    public void WindowClosed(...) {
       // la fenêtre est fermée
    }
});
0
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
4 mars 2007 à 18:32
Bonjour.
Mon "while(...)" ne verifie pas si la fenetre principale est visible mais plutot si le fenetre Option1 (auxiliaire) l'est ou non.
Par consequent le code que tu m'a fourni ne me (il me semble) permet pas de savoir si Option1 est visible.
merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
4 mars 2007 à 18:40
Bien sûr que si, à toi d'adapter le code pour appliquer un listener sur ce que tu veux.

Le listener n'est invoqué que lors d'un événement précis, ce qui évite de recourir justement à une boucle infinie qui elle consomme tout le temps CPU !
0
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
4 mars 2007 à 18:41
d'accord.
merci.
0
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
5 mars 2007 à 17:15
Bonjour.
je n'arrive pas a jouter de listener a la frame de ma class Option1.
voila ce que je fait:

Dans option1: 
   public JFrame getFrame(){
      return this.;
   }

dans la fenetre principale:
   new Option1().getFrame().addWindowAdapter(new WindowAdapter() {
      public void WindowClosed(WindowEvent evt) {
       System.out.println("Fenetre Option1 Fermé.");
       //ici tous le bordel (mdr)
      }
     });

merci.
ca fait depuis hier soir que je tourne le code dans tous les sens mais je ne trouve rien qui fonctionne.
merci.
0
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
5 mars 2007 à 17:43
merci. je n'ai plus cette erreur.
desormais j'en ai une autre que je ne comprend absolument pas :

cannot find symbol
symbol  : method addWindowAdapter()
location: class Option1
                option_1.addWindowAdapter(new WindowAdapter() {
                             ^
1 error

merci de ton aide.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
5 mars 2007 à 18:26
cela ne viendrait-il pas du "_" ?
0
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
5 mars 2007 à 18:36
j'essayer en les suppirimant et ca ne change rien.
merci.
0
Rejoignez-nous