Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 13 sur 13
  1. #1
    Invité de passage
    Inscrit en
    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 .

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro Renaud Warnotte
    Développeur informatique
    Inscrit en
    août 2006
    Messages
    2 582
    Détails du profil
    Informations personnelles :
    Nom : Homme Renaud Warnotte
    Âge : 33
    Localisation : Belgique

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

    Informations forums :
    Inscription : août 2006
    Messages : 2 582
    Points : 4 390
    Points
    4 390

    Par défaut

    ImporDialog dérive d'un JDialog ?

  3. #3
    Invité de passage
    Inscrit en
    mai 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : mai 2009
    Messages : 33
    Points : 2
    Points
    2

    Par défaut

    Citation Envoyé par wax78 Voir le message
    ImporDialog dérive d'un JDialog ?
    Oui. Elle dérive d'un JDialog.

  4. #4
    Expert Confirmé Sénior
    Avatar de tchize_
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    avril 2007
    Messages
    21 164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

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

    Informations forums :
    Inscription : avril 2007
    Messages : 21 164
    Points : 34 810
    Points
    34 810

    Par défaut

    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
    Tchize (Чиз) 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.

  5. #5
    Invité de passage
    Inscrit en
    mai 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : mai 2009
    Messages : 33
    Points : 2
    Points
    2

    Par défaut

    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?

  6. #6
    Membre Expert
    Homme Profil pro Mathieu
    Ingénieur développement logiciels
    Inscrit en
    avril 2004
    Messages
    1 181
    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 181
    Points : 1 674
    Points
    1 674

    Par défaut

    Bonjour,

    setVisible(true) ?

    tout est dans la doc :
    Deprecated. As of JDK version 1.5, replaced by setVisible(boolean).

  7. #7
    Invité de passage
    Inscrit en
    mai 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : mai 2009
    Messages : 33
    Points : 2
    Points
    2

    Par défaut

    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?

  8. #8
    Modérateur
    Avatar de wax78
    Homme Profil pro Renaud Warnotte
    Développeur informatique
    Inscrit en
    août 2006
    Messages
    2 582
    Détails du profil
    Informations personnelles :
    Nom : Homme Renaud Warnotte
    Âge : 33
    Localisation : Belgique

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

    Informations forums :
    Inscription : août 2006
    Messages : 2 582
    Points : 4 390
    Points
    4 390

    Par défaut

    setModal() pour bloquer ou non sur le dialogue et rien d'autres.

  9. #9
    Invité de passage
    Inscrit en
    mai 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : mai 2009
    Messages : 33
    Points : 2
    Points
    2

    Par défaut

    Quand je met un setModal dans ma JDialog, tout mon panel et mes boutons ne s'affiche plus.

  10. #10
    Invité de passage
    Inscrit en
    mai 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : mai 2009
    Messages : 33
    Points : 2
    Points
    2

    Par défaut

    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.

  11. #11
    Expert Confirmé Sénior
    Avatar de tchize_
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    avril 2007
    Messages
    21 164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

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

    Informations forums :
    Inscription : avril 2007
    Messages : 21 164
    Points : 34 810
    Points
    34 810

    Par défaut

    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()
    Tchize (Чиз) 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.

  12. #12
    Invité de passage
    Inscrit en
    mai 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : mai 2009
    Messages : 33
    Points : 2
    Points
    2

    Par défaut

    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...

  13. #13
    Expert Confirmé Sénior
    Avatar de tchize_
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    avril 2007
    Messages
    21 164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

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

    Informations forums :
    Inscription : avril 2007
    Messages : 21 164
    Points : 34 810
    Points
    34 810

    Par défaut

    Comme je l'ai dit, "Si t'es dans l'EDT tu fais ton setVisible et tu continue le travail après".
    Tchize (Чиз) 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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •