Fonctionnement du focus

kungouf Messages postés 29 Date d'inscription lundi 3 mai 2004 Statut Membre Dernière intervention 15 février 2005 - 26 janv. 2005 à 16:24
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007 - 31 janv. 2005 à 09:50
bonjour

j'ai un probleme pour gerer le focus dans mon programme:
j'ai des objets qui sont instancies de la classe Saisie extends JDialog implements FocusListener

j'ai une boucle principale pour afficher ces objets :

for(int i=0; i<nbAffiche; i++){

Saisie maSaisie = new Saisie();
maSaisie.requestFocusInWindow();
maSaisie.setModal(true);
}

jusqu'ici tout va bien, la saisie se fait sur les focus tour a tour, cependant voicu mon probleme:

Saisie appelle a son tour une fenetre qui est une instance(qu'on va appeler maSaisiePackage) d'une classe SaisiePackage,
et justement je voulais passer le focus sur cette nouvelle fenetre, mais c'est impossible, le focus reste sur l'instance de fenetre maSaisie !

meme en faisant maSaisie.setFocusable(fasle); au prealable:

...
SaisiePackage maSaisiePackage = new SaisiePackage();

maSaisie.setFocusable(fasle);
maSaisiePackage.requestFocusInWindow(); //le focus ne s'opere pas la fenetre s'ouvre mais en arriere plan et impossible de mettre le focus dessus meme en cliquant dessus!

si quelqu'un est expert qu'il se manifeste, je m'arrache les cheveux depuis cet apres midi!

3 réponses

dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
27 janv. 2005 à 08:43
normal, puisque tu ouvres une JDialog (Saisie) et que celle-ci est modale...

enleve le modal et passe le focus...

-------------------
dams
-------------------
0
kungouf Messages postés 29 Date d'inscription lundi 3 mai 2004 Statut Membre Dernière intervention 15 février 2005
28 janv. 2005 à 23:13
dmaillet merci de ta reponse

cependant je cherche aussi un moyen d'afficher mes component Saisie de type JDialog chacun a leur tour

si j'enleve le modal, les 3 fenetres vont s'afficher a la suite avant que j'ai le temps de faire saisir quelque chose par l'user
0
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
31 janv. 2005 à 09:50
Non, il suffit de mettre un Thread juste derriere chaque dilaog de type

...

public void run(){

while (dialog.isVisible()){

Thread.sleep(500);

}

}

...

et le tour est joue...


-------------------
dams
-------------------
0
Rejoignez-nous