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

Agents de placement/Fenêtres Java Discussion :

[JPanel] priorité de sélection de composants


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2005
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2005
    Messages : 175
    Par défaut [JPanel] priorité de sélection de composants
    j'ai des composants qui ont une methode paint pour en gros afficher une image. le panel qui contient ces composants appelle leur metode paint dans sa methode paint. et ca marche.

    Avec des mouseDrag, mouseclick, les composants peuvent etre selectionnés ou déplacés et ca marche aussi.

    Le probleme, c'est que si un composant est "sur" un autre. le click sur l'intersection des deux selectionne celui qui est en dessous.

    Mis a part que je viens d'inventer la fenetre translucide, c'est kan meme pas top au niveau interface intuituve.

    J'ai essayé de peindre les comosants dans l'ordre inverse a partir du paint du panel, mais rien n'y change. le problème est le meme

    alors "peint en premier" = prioritaire au la selection ? ce n'est pas tres logique. si quelqu'un voit ou est le problème...




    PS : pour le code cf le post http://www.developpez.net/forums/viewtopic.php?t=361021 (et oui ca me fait deux problemes)

  2. #2
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Juste une idée comme ça
    Tu dis que lorsque deux composants se superposent, le click sélectionne celui qui est en dessous. Bon, déjà, je ne comprends pas comment tu peux avoir deux composants qui se chevauchent, ce n'est à mon avis pas conforme au design d'une interface graphique.
    Pour répondre à ton problème, je pense que le dispatcher d'événement recherche avant tout le composant à qui adresser l'événement, ensuite il invoque dessus la méthode processEvent().
    Pour ce faire, il est amené à parcourir la liste des fils du composant, et ce dans un ordre déterministe. Par exemple, il peut parcourir cette liste selon l'ordre d'insertion des composants fils dans le composant en cours. Si on part dans cette hypothèse, et si le composant qui se trouve en dessous a été inséré AVANT le composant qui le chevauche, il va recevoir l'événement... Juste pour confirmer, inverse l'ordre d'insertion, pour voir

  3. #3
    Membre confirmé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2005
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2005
    Messages : 175
    Par défaut
    très juste, j'ai le meme avis que toi sur le fait que le dispatcher choisit surement celui ki a été inséré en premier, mais le problème c'est queces composants sont ajoutés par l'utilisateur par un clic de souris. Difficile dans ce cas d'ajouter avant que l'utilisateur ne l'ai fait lui meme (l'appli est un genre d'editeur de schéma)

    tu me donne une idée cependant, j'essaie et je vous tiens au courant

  4. #4
    Membre confirmé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2005
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2005
    Messages : 175
    Par défaut
    ca marche ! voici le code. il faut tout "remover", puis adder en sens inverse de celui ou on paint et ca marche tout seul

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Vector theVector = getFrameMainProjetDesign().getProjectPartSet();    
            removeAll();
            for (int i = 0; i<theVector.size(); i++) {
                Part pToPaint = (Part)(theVector.get(i));
                Part pToAdd = (Part)(theVector.get(theVector.size()-1-i));
              // we update the information panel if the component is "selected"
              // warning: this following line will cause problem, if we ever
              // decide to allow multiple selection of Parts.
    //        TODO : a remettre en ayant trouvé le bug..
              if (pToPaint.isSelected()) {
                  //getFrameMainProjetDesign().getPanelComponentParameters().MAJ(pToPaint);
              }
              // we repaint the component :     
              System.out.println("component to paint has ID : "+pToPaint.getId());
              pToPaint.update(g); // We paint this Part, in the same graphical context
              // we add the other component
              add(pToAdd);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Empêcher la sélection de composants graphiques
    Par Invité dans le forum Composants VCL
    Réponses: 3
    Dernier message: 29/06/2010, 09h54
  2. JPanel / BorderLayout et Suppression de Composants
    Par LesToulousains dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 12/04/2007, 08h49
  3. [Débutant]Jpanel et dessin de composants
    Par frabill dans le forum 2D
    Réponses: 3
    Dernier message: 16/02/2006, 19h00
  4. Quel est le composant sélectionné /DBGrid et multi sélection
    Par lol_adele dans le forum Composants VCL
    Réponses: 17
    Dernier message: 02/09/2005, 09h27
  5. [JPanel] supression de composants
    Par vasilov dans le forum Agents de placement/Fenêtres
    Réponses: 14
    Dernier message: 17/08/2005, 10h12

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