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 :

[Java][Event - Listener] Return en fonction d'un listener


Sujet :

AWT/Swing Java

  1. #21
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Tu pourras créer 50 threads ça ne va pas résoudre ton problème

    Le seul moyen de faire ce que tu veux c'est d'écrire du code qui va s'exécuter sur l'EDT sans le bloquer mais en bloquant si tu vois ce que je veux dire

    C'est a dire que ta tache doit 'bloquer' tant que l'utilisateur n'a pas répondu mais comme elle est sur l'EDT elle doit permettre aux autres taches de l'EDT de se dérouler tant qu'elle est bloquée...

    Même en français c'est pas facile a écrire, mais bonne chance

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  2. #22
    Membre habitué Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Points : 160
    Points
    160
    Par défaut
    Citation Envoyé par bulbo Voir le message
    Tu pourras créer 50 threads ça ne va pas résoudre ton problème

    Le seul moyen de faire ce que tu veux c'est d'écrire du code qui va s'exécuter sur l'EDT sans le bloquer mais en bloquant si tu vois ce que je veux dire

    C'est a dire que ta tache doit 'bloquer' tant que l'utilisateur n'a pas répondu mais comme elle est sur l'EDT elle doit permettre aux autres taches de l'EDT de se dérouler tant qu'elle est bloquée...

    Même en français c'est pas facile a écrire, mais bonne chance

    Bulbo
    mais sinon EDT c'est quoi "Environnement De Tekos" ?
    "Erasmus De Turquie" ?
    Hum hum hum...géant vert ! ! !
    Le meilleur moyen de trouver c encore de chercher ! ! !

  3. #23
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Citation Envoyé par Piolet Voir le message
    mais sinon EDT c'est quoi "Environnement De Tekos" ?
    "Erasmus De Turquie" ?
    Erection Du Travailleur

    tu me fais troller dans un topic sérieux c'est pas gentil ça

    Serieusement (si ta question l'etait): Event Dispatch Thread

    Je suis en train de voir si ya moyen de faire plus simple que ce que montre l'article cité plus haut, mais je promets rien.

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  4. #24
    Membre habitué Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Points : 160
    Points
    160
    Par défaut
    Citation Envoyé par bulbo Voir le message
    Erection Du Travailleur

    tu me fais troller dans un topic sérieux c'est pas gentil ça

    Serieusement (si ta question l'etait): Event Dispatch Thread

    Je suis en train de voir si ya moyen de faire plus simple que ce que montre l'article cité plus haut, mais je promets rien.

    Bulbo
    ma question etait serieuse...
    et franchement c'est pas tres "clean code" de devoir mettre le SwingWorker avant chaque appel de la méthode...on appelle ca de la redondance de code, et moi...mes profs a la fac..bon ok c'etait y a longtps, mais je pense pas que ca ait changé, me disaient :
    la redondance, c'est tabou, on en viendra tous a bout..
    donc tu vois pkoi j'espère une autre solution
    Hum hum hum...géant vert ! ! !
    Le meilleur moyen de trouver c encore de chercher ! ! !

  5. #25
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    si tu ne veux pas faire de la redondance il faut que tu passe en argument un Runnable que tu exécuteras dans le done.

    Il faut bien préciser que la méthode n'est pas bloquante et qu'il faut passer par le RUnnable..

    Il se trouve que tu es dans un cas ou tu n'as pas un énorme choix .. en plus ce n'est pas vraiment dupliquer du code.

    On est d'accord, tu parcours un ArrayList toujours de la même façon et pourtant tu n'as jamais encapsulé une bonne fois pour toute le parcours dans une méthode prenant "je ne sais quoi" en argument.

    La c'est pareil, ton code pour bloquer ta fenêtre est dans une méthode propre, simplement pour ne pas bloquer une GUI tu passe par un SwingWorker comme recommandé par Sun si tu es sur l'EDT.

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  6. #26
    Membre habitué Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Points : 160
    Points
    160
    Par défaut
    Citation Envoyé par bulbo Voir le message
    si tu ne veux pas faire de la redondance il faut que tu passe en argument un Runnable que tu exécuteras dans le done.

    Il faut bien préciser que la méthode n'est pas bloquante et qu'il faut passer par le RUnnable..

    Il se trouve que tu es dans un cas ou tu n'as pas un énorme choix .. en plus ce n'est pas vraiment dupliquer du code.

    On est d'accord, tu parcours un ArrayList toujours de la même façon et pourtant tu n'as jamais encapsulé une bonne fois pour toute le parcours dans une méthode prenant "je ne sais quoi" en argument.

    La c'est pareil, ton code pour bloquer ta fenêtre est dans une méthode propre, simplement pour ne pas bloquer une GUI tu passe par un SwingWorker comme recommandé par Sun si tu es sur l'EDT.

    Bulbo
    toi....t'as essayé de voir si y avait pas moyen de faire sans tout le code de l'article...mais t'as pas reussi

    sinon je lui mets quoi a ce Runnable ?

    parce qu'a la rigueur, je suis preneur de ca....
    Hum hum hum...géant vert ! ! !
    Le meilleur moyen de trouver c encore de chercher ! ! !

  7. #27
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Citation Envoyé par Piolet Voir le message
    toi....t'as essayé de voir si y avait pas moyen de faire sans tout le code de l'article...mais t'as pas reussi

    sinon je lui mets quoi a ce Runnable ?

    parce qu'a la rigueur, je suis preneur de ca....
    Ton Runnable contient le code a exécuter lorsque l'utilisateur a fait un choix et tu l'appelles dans le done du SwingWorker.

    Tout ça revient plus ou moins dans l'idée a un listener vu que ta méthode ne sera plus bloquante .. et le listener est plus propre..

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  8. #28
    Membre habitué Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Points : 160
    Points
    160
    Par défaut
    Citation Envoyé par bulbo Voir le message
    Ton Runnable contient le code a exécuter lorsque l'utilisateur a fait un choix et tu l'appelles dans le done du SwingWorker.

    Tout ça revient plus ou moins dans l'idée a un listener vu que ta méthode ne sera plus bloquante .. et le listener est plus propre..

    Bulbo
    et cet appel la avec le Runnable, je peux l'encapsuler dans une methode qui fournirait le Runnable ou pas....ce qui résoud le problème logiquement... non ?

    tu vas voir qu'on vas y arriver, enfin surtout toi
    Hum hum hum...géant vert ! ! !
    Le meilleur moyen de trouver c encore de chercher ! ! !

  9. #29
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Runnable est un objet donc tu peux le passer en argument voir le créer a l'appel en inner class:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    showMessageBox("Sauver les données ?", new Runnable()
    {
      public void run()
      {
          // Le code qui va tenir compte de la décision de l'utilisateur
      }
    });
    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  10. #30
    Membre habitué Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Points : 160
    Points
    160
    Par défaut
    Citation Envoyé par bulbo Voir le message
    Runnable est un objet donc tu peux le passer en argument voir le créer a l'appel en inner class:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    showMessageBox("Sauver les données ?", new Runnable()
    {
      public void run()
      {
          // Le code qui va tenir compte de la décision de l'utilisateur
      }
    });
    Bulbo
    et donc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    //Avec un Runnable bien specifique a moi
    public int showMessageBox("Sauver les données ?") {
    this.showMessageBox("Sauver les données ?", new Runnable() {...
    });
    private void showMessageBox("Sauver les données ?", new Runnable()
    {
      public void run()
      {
          // Le code qui va tenir compte de la décision de l'utilisateur
      }
    });
    Hum hum hum...géant vert ! ! !
    Le meilleur moyen de trouver c encore de chercher ! ! !

  11. #31
    Membre habitué Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Points : 160
    Points
    160
    Par défaut
    Citation Envoyé par bulbo Voir le message
    Ah oui au fait j'avais oublié une des tes questions: comment éviter que tab se balade dans les composants "en dessous"

    Ajoute ça dans le constructeur de ton JPanel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        // This component keeps the focus until is made hidden
        setInputVerifier(new InputVerifier()
        {
          public boolean verify(JComponent input)
          {
            return !isVisible();
          }
        });
    Bulbo
    euh...le tab va sur les elements cachés par mon panel semi opaque...pas glop...parce que si j'appuie sur espace...bah clic bouton bah...hop plantage
    Hum hum hum...géant vert ! ! !
    Le meilleur moyen de trouver c encore de chercher ! ! !

  12. #32
    Membre habitué Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Points : 160
    Points
    160
    Par défaut
    roooh la daube..tous mes espoirs s'en vont....
    le SwingWorker c'est pour la 1.6, moi je suis limité a la 1.5...aaaaaaaargh bourdel
    Hum hum hum...géant vert ! ! !
    Le meilleur moyen de trouver c encore de chercher ! ! !

  13. #33
    Membre habitué Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Points : 160
    Points
    160
    Par défaut
    et en reflechissant, me dis que ce que j'avais proposé ne peux pas marcher, enfin pas comme je l'entend


    ma methode qui fournit un Runnable au SwingWorker, je vais lui donner mais ca me permettra pas de faire un return dans cette méthode
    Hum hum hum...géant vert ! ! !
    Le meilleur moyen de trouver c encore de chercher ! ! !

  14. #34
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par Piolet Voir le message
    roooh la daube..tous mes espoirs s'en vont....
    le SwingWorker c'est pour la 1.6, moi je suis limité a la 1.5...aaaaaaaargh bourdel
    En version java 5:

    https://swingworker.dev.java.net/
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  15. #35
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Citation Envoyé par Piolet Voir le message
    euh...le tab va sur les elements cachés par mon panel semi opaque...pas glop...parce que si j'appuie sur espace...bah clic bouton bah...hop plantage
    Tient étrange, le code que je t'ai filé vient d'un article ou le type expliquait comment faire une "blocking glass pane" et c'était censé empêcher de perdre le focus avec un tab par exemple .. je vais tester ça de mon cote, vu que je l'utilise aussi..

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  16. #36
    Membre habitué Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Points : 160
    Points
    160
    Par défaut
    Citation Envoyé par bulbo Voir le message
    Tient étrange, le code que je t'ai filé vient d'un article ou le type expliquait comment faire une "blocking glass pane" et c'était censé empêcher de perdre le focus avec un tab par exemple .. je vais tester ça de mon cote, vu que je l'utilise aussi..

    Bulbo
    oui merci tu seras gentil
    Hum hum hum...géant vert ! ! !
    Le meilleur moyen de trouver c encore de chercher ! ! !

  17. #37
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Pour tout ce qui touche au glasspane CF ce blog: http://weblogs.java.net/blog/alexfromsun/
    Tu y trouveras entre autres l'article mentionné par Bulbo
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  18. #38
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Citation Envoyé par sinok Voir le message
    Pour tout ce qui touche au glasspane CF ce blog: http://weblogs.java.net/blog/alexfromsun/
    Tu y trouveras entre autres l'article mentionné par Bulbo
    Merci pour le lien sinok, je ne l'avais plus

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  19. #39
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Je viens de tester l'histoire du focus et tu as raison, ça ne marche pas

    Ca m'apprendra a prendre pour argent content les paroles d'experts ..

    reste plus qu'a trouver d'où ça vient cette vacherie..

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  20. #40
    Membre habitué Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Points : 160
    Points
    160
    Par défaut
    Citation Envoyé par bulbo Voir le message
    Je viens de tester l'histoire du focus et tu as raison, ça ne marche pas

    Ca m'apprendra a prendre pour argent content les paroles d'experts ..

    reste plus qu'a trouver d'où ça vient cette vacherie..

    Bulbo
    ah parce qu'en plus tu me croyais pas...ah bah merci la confiance

    sinon j'ai mis en place, ce matin dans le train, le SwingWorker, bah c'est bon ca marche...reste plus qu'a filer le nombre de "Runnable" adequat a la methode pour gérer les differents cas (YES, NO, CANCEL etc...) en fonction du DialogPane affiché..
    vu qu'avec le SwingWorker, ma méthode ne renvoie plus de resultat...
    ca m'aurait quand meme arrangé...
    Hum hum hum...géant vert ! ! !
    Le meilleur moyen de trouver c encore de chercher ! ! !

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Equivalent Java d'une signature de fonction C++
    Par rimas2009 dans le forum Langage
    Réponses: 12
    Dernier message: 24/04/2009, 12h42
  2. [POO] objet Java en paramètre d'une fonction Javascript
    Par bastouffe dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/09/2008, 16h55
  3. [Yahoo UI] Return sur fonction (yui)
    Par vraipolite dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 18/04/2007, 17h21
  4. Réponses: 4
    Dernier message: 25/07/2006, 11h10
  5. [debutant] correspondance JAVA C++ pour pointeur de fonction
    Par davidoff_tls dans le forum Langage
    Réponses: 7
    Dernier message: 15/04/2004, 09h13

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