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 :

[Swing][Focus] petit soucis trés étrange


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur Informatique
    Inscrit en
    Décembre 2005
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur Informatique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 146
    Par défaut [Swing][Focus] petit soucis trés étrange
    Bonjour à tous,

    Actuellement je créer un petit editeur de carte en vue isométrique.
    J'utilise un JFrame avec un JMenu tout ce qu'il y a de classique et un JPanneau qui contient le graphisme de la carte à affiche. Cette derniere est affiche selon une hierarchie de carte->scene->layer->case->element.

    Avec la carte sous forme d'un singleton! afin de pouvoir l'utillise bien comme il faut ailleurs que depuis le panneau comme la fenetre par ex.
    Seulement j'ai un soucis.

    Lors de la création cela se passe magnifiquement... Aprés je peux déplacer mon curseur comme je veux, je peux meme ouvrir d'autres boite de dialogue, en modal mais à condition que je fasse un requestFocus() lorsque je reviens sur la fenetre... sinon j'ai droit à la même exception soit un null pointeur :s

    Et autrement si je quitte la fenetre et reviens dessus ou que je vais ds mon menu sans rien cliquer et reviens sur ma fenetre pour déplacer mon curseur j'ai le meme problème!
    dans la case j'ai une liste d'element, avec le débeugueur je vois une taille de un, mais la liste n'a pu l'element... C'est comme en ayant perdu le focus, l'element c'était volatise, mais la reference y ai resté :s

    C'est trés bizarre, et je vois pas comment m'y prendre pour trouver l'origine de mon erreur, à moins que l'erreur ne viennent pas de là ou je pense mais bon...

    Houla, au final je ne sais pas si j'ai été trés clair :s, si vous avez besoin de plus d'explication n'hésitez pas ^^

    EDIT: J'ai triche en partie en faisant la detection de la perte d'activation de la fenetre, ainsi quand je la retrouve je refais un requestFocus() et la ça passe je retrouve mes billes...

    Mais je comprens pas qu'en passant dans le menu sans rien valider je perd "mes billes" enfin que je les pseudo perds, car elles sont virtuellement présent (la quantité est là) mais la valeur à disparut sur la perte de focus...
    Bref, un élement m'échappe. Donc pour le moment j'en suis à tenter de trouver un moyen de voir si j'ai un survol du menu et sur l'arrete de survol, op je refais cette bidouille avec requestFocus()...

    En tout cas, ça ne me plait pas beaucoup cette histoire

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur Informatique
    Inscrit en
    Décembre 2005
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur Informatique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 146
    Par défaut
    Bon, aprés qlq autres tests ce soir...

    C'est encore plus obscure, me demande si c'est pas un bug cette histoire qd même :s

    Donc voici le résumé:

    1) application lancer
    -> mon curseur se déplace sur ma carte sans problème
    (on n'utilise pas le menu)

    2) on clique sur le menu histoire de voir ce qu'il a dans le ventre
    a) on décide de ne pas cliquer sur aucun JMenuItem (qui ouvre toute pour le moment d'autres boite de dialogue)
    alors si je veux déplacer mon curseur j'ai une exception pointeur null.
    Or l'element est théoriquement présent dans le arraylist puisque je n'ai pas utilise de remove, et de plus la taille est reste de 1 (et avant le clique je pouvais me balladait comme je voulais) Je précise que cette arraylist contient l'objet terrain mais la bizarrement sa reference en cliquant sur le menu sans rien valider la fait disparaitre. (bref au lieu d'obtenir le fameux Terrain présent dedans j'obtiens null, d'ou l'exception ... mais pourquoi l'arraylist reste à 1, et que la reference à mon objet terrain à disparut mystérieusement, ben ça reste bien mystique pour moi cette affaire :s


    b) on décide d'ouvrir une boite de dialogue,
    vu qu'elle sont modable pour la saisie des renseignements, on fait ce qu'on a affaire dessus... puis on valide le choix!

    Et la miracle le curseur bouge toujours est j'ai bien les modifications apporte demande depuis ma boite de dialogue... (donc ma reference à mon terrain est présente )

    Aprés on peut se dire c'est qu'en ne validant pas... Et bien non, si j'ai déjà cliquer dans un element de mon menu, je peux aller dans le menu et le quitter sans cliquer sur un JMenuItem quelconque et mon exception ne reviens pas!


    Bref moi je perds la boule ça c'est sur :s

    EDIT:
    j'ai oublié de préciser que j'utilise mustang car Tiger provoquait des bugues d'affichage n'apparaissant pas avec Mustang (même si je pense que y a un truc que je pense pas qui doit tout faire clochait :s)

Discussions similaires

  1. Petit soucis CSS très "LOL"
    Par Zaelos dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 23/01/2012, 10h41
  2. Petit soucis de focus et de dimensionnement
    Par scary dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 20/11/2009, 12h33
  3. Petit soucis avec Swing
    Par Luffy49 dans le forum AWT/Swing
    Réponses: 15
    Dernier message: 29/03/2007, 10h36
  4. Réponses: 6
    Dernier message: 21/01/2004, 13h25
  5. [DEBUTANT] petits soucis avec un prgm de chat
    Par LechucK dans le forum MFC
    Réponses: 8
    Dernier message: 19/01/2004, 16h52

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