Précédent   Forum du club des développeurs et IT Pro > Java > Interfaces Graphiques en Java
Interfaces Graphiques en Java Forum d'entraide pour les interfaces graphiques en Java (Swing, AWT, JFace, SWT, Graphisme 2D et 3D, clients riches, ...). Avant de poster -> Les cours sur les Interfaces Graphiques - FAQ GUI Java
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 20/09/2012, 09h58   #1
hulkyoann
Invité de passage
 
Inscription : mai 2009
Messages : 33
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 33
Points : 2
Points : 2
Par défaut Attendre un retour fonction

Bonjour,

J'ai un petit pépin.

J'ai une Classe qui s'occupe d'afficher une fenêtre d'import de JTable.
Dans cette classe j'ai une Méthode Display() qui affiche la fenêtre d'import.
Je voudrais attendre que cette méthode renvoie un IMPOR_DONE pour récupérer la JTable.
Je ne sait pas si je me fais comprendre. C'est un peu à la manière dont fonctionne JFileChooser.
Pour donner un exemple de ce que je voudrais :
Code :
1
2
3
4
5
ImporDialog imp = new ImporDialog(file);
if ( imp.display() == IMPOR_DONE )
{
         JTable table = imp.getTable();
}
En fait je ne sais pas comment mettre cela en oeuvre. Si il me faut des Listeners et des observateurs.
Si quelqu'un pouvais m'aider ç serait cool, ça fait deux bonne heure que je cherche .
hulkyoann est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2012, 10h02   #2
wax78
Modérateur
 
Avatar de wax78
 
Homme Renaud Warnotte
Développeur informatique
Inscription : août 2006
Messages : 2 141
Détails du profil
Informations personnelles :
Nom : Homme Renaud Warnotte
Âge : 32
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2006
Messages : 2 141
Points : 4 091
Points : 4 091
Envoyer un message via MSN à wax78
ImporDialog dérive d'un JDialog ?
wax78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2012, 10h13   #3
hulkyoann
Invité de passage
 
Inscription : mai 2009
Messages : 33
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 33
Points : 2
Points : 2
Citation:
Envoyé par wax78 Voir le message
ImporDialog dérive d'un JDialog ?
Oui. Elle dérive d'un JDialog.
hulkyoann est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2012, 14h11   #4
tchize_
Expert Confirmé Sénior
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 18 284
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 18 284
Points : 32 759
Points : 32 759
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
Si ta boite de dialogue est modale, la méthode show() sera blocante jusqu'à ce que la boite aie été à nouveau cachée. A toi d'enrober autour avec tes boutons / options / composants pour déterminer une valeur de retour
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2012, 14h28   #5
hulkyoann
Invité de passage
 
Inscription : mai 2009
Messages : 33
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 33
Points : 2
Points : 2
Ok merci pour ta réponse.

Y'a pas moyen de faire un truc avec le pattern observer?
Ce serait plus propre. En tout cas je vais essayer avec la méthode show.

Edit : La méthode show est dépréciée. Y'aurait pas une autre fonction? Pas dépréciée?
hulkyoann est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2012, 14h34   #6
Mathieu.J
Modérateur
 
Homme Mathieu
Ingénieur développement logiciels
Inscription : avril 2004
Messages : 1 180
Détails du profil
Informations personnelles :
Nom : Homme Mathieu
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2004
Messages : 1 180
Points : 1 831
Points : 1 831
Bonjour,

setVisible(true) ?

tout est dans la doc :
Citation:
Deprecated. As of JDK version 1.5, replaced by setVisible(boolean).
Mathieu.J est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2012, 14h43   #7
hulkyoann
Invité de passage
 
Inscription : mai 2009
Messages : 33
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 33
Points : 2
Points : 2
Citation:
Envoyé par Mathieu.J Voir le message
Bonjour,

setVisible(true) ?

tout est dans la doc :
J'ai vu qu'il y avait setVisible et show. Je suis aller voir la javadoc direct. Mais le setVisible, il me sert à rien, je l'ai déja mis. Du cou ce serait la méthode setVisible qui est bloquante ????

Edit : la méthode show ne me bloque pas grand chose. Et setVisible non plus. Par contre le setModal marche plutôt bien. Une idée?
hulkyoann est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2012, 15h18   #8
wax78
Modérateur
 
Avatar de wax78
 
Homme Renaud Warnotte
Développeur informatique
Inscription : août 2006
Messages : 2 141
Détails du profil
Informations personnelles :
Nom : Homme Renaud Warnotte
Âge : 32
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2006
Messages : 2 141
Points : 4 091
Points : 4 091
Envoyer un message via MSN à wax78
setModal() pour bloquer ou non sur le dialogue et rien d'autres.
wax78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2012, 15h28   #9
hulkyoann
Invité de passage
 
Inscription : mai 2009
Messages : 33
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 33
Points : 2
Points : 2
Quand je met un setModal dans ma JDialog, tout mon panel et mes boutons ne s'affiche plus.
hulkyoann est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2012, 17h10   #10
hulkyoann
Invité de passage
 
Inscription : mai 2009
Messages : 33
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 33
Points : 2
Points : 2
Personne pour me répondre?
La je n'y arrive pas.

Je crois que je me suis mal expliquer, et, du coup, je crois comprendre pourquoi les solutions que l'on m'a données ne marche pas.

La on je veux exécuter le bout de code se trouve dans une méthode static. Donc si je fais une fenêtre bloquante, cela ne marchera pas car, cette fenêtre n'est pas appelée par une fenêtre. Mon code continuera de s’exécuter même si ma fenêtre est bloquante. Enfin c'est ce que j'ai compris des essais que j'ai fait.
hulkyoann est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2012, 19h45   #11
tchize_
Expert Confirmé Sénior
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 18 284
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 18 284
Points : 32 759
Points : 32 759
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
La javadoc est claire: avec un JDIalog, setVisible(true) bloque tant que la fenetre n'est pas fermée, si et seulement si:

1) la fenêtre n'était pas déjà visible
2) la fenêtre est modale (setModal)


Le fait que tu sois ou non dans l'EDT ne change pas grand chose. Si t'es dans l'EDT tu fais ton setVisible et tu continue le travail après. Si tu n'y est pas, tu délègue un bout de code (le setVisible) à l'EDT et tu attends qu'il aie fini via un appel à SwingUtilies.invokeAndWait()
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2012, 08h50   #12
hulkyoann
Invité de passage
 
Inscription : mai 2009
Messages : 33
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 33
Points : 2
Points : 2
J'ai essayé de faire un invokeAndWait, cependant, j'ai une exception

Code :
java.lang.Error: Cannot call invokeAndWait from the event dispatcher thread
La je ne sais que faire...
hulkyoann est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2012, 13h43   #13
tchize_
Expert Confirmé Sénior
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 18 284
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 18 284
Points : 32 759
Points : 32 759
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
Comme je l'ai dit, "Si t'es dans l'EDT tu fais ton setVisible et tu continue le travail après".
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 03h52.


 
 
 
 
Partenaires

Hébergement Web