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 :

[MouseListener] Confusion de listener


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 14
    Points : 9
    Points
    9
    Par défaut [MouseListener] Confusion de listener
    Bonjour à tous!

    J'ai un petit problème.

    Voila j'ai decider de créer un editeur de plan...
    rien de très compliqué ...
    ->un JPanel composé d'une combo box proposant une taille, et un bouton ouvrant un JColorChooser pour choisir la couleur
    ->un JPanel vide appelé DrawingPane doté d'un MouseListener. la Méthode mouseCliked permet de dessiner un DessinConcession (en gro c'est un rectangle2D)

    La classe DessinConcession elle, étend JComponant. Elle est doté d'un MouseMotionListener ... elle représente une tombe en dessinant un rectangle

    Je voudrai pouvoir bouger mon rectangle dans le drawingPane en utilisant mouse dragged... pour cela g implémenté la méthode comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    public void mouseDragged(MouseEvent e)
    {
    	x = e.getX() - longueur / 2;
    	y = e.getY() - largeur / 2;
    	System.out.println("MouseDragged");
    }
    Mais le problème c ke cela ne fonctionne pas... en effet, g l'impression ke le MouseCliked du drawingPane "cache" le MouseMotionListener du dessinConcession ... en gros, lorsque je clik sur un rectangle représentant une concession (dessinConcession) il dessine une autre concession au dessus de l'ancienne.

    alors g fait une autre tentative...
    dans la methode mouseCliked de DrawingPane ... j'ai essayé ac un instanceof ... voici le code :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
     
    public void mouseClicked(MouseEvent e)
    {
    	if (e.getSource() instanceof DrawingPane)
    	{
    		Rectangle2D rect;
    		Graphics2D g2 = (Graphics2D) getGraphics();
    		int longueur = 0;
    		int largeur = Constantes.LARGEUR_TOMBE;
    		int xRect = 0, yRect = 0;
    		switch (choix.getNbPlaces())
    		{
    			case 2 :
    			{
    				xRect = e.getX() - Constantes.LONGUEUR_TOMBE_2_PLACES / 2;
    				yRect = e.getY() - Constantes.LARGEUR_TOMBE / 2;
    				longueur = Constantes.LONGUEUR_TOMBE_2_PLACES;
    				break;
    			}
    			case 4 :
    			{
    				xRect = e.getX() - Constantes.LONGUEUR_TOMBE_4_PLACES / 2;
    				yRect = e.getY() - Constantes.LARGEUR_TOMBE / 2;
    				longueur = Constantes.LONGUEUR_TOMBE_4_PLACES;
    				break;
    			}
    			case 6 :
    			{
    				xRect = e.getX() - Constantes.LONGUEUR_TOMBE_6_PLACES / 2;
    				yRect = e.getY() - Constantes.LARGEUR_TOMBE / 2;
    				longueur = Constantes.LONGUEUR_TOMBE_6_PLACES;
    				break;
    			}
    		}
    		concession = new DessinConcession(xRect, yRect, longueur, largeur, choix.getColor());
    		concession.paintComponent(getGraphics());
     
    		System.out.println("MouseClicked");
    	}
    	else
    		System.out.println("Concession.MouseClicked");
     
    }
    J'espere que vous aller pouvoir m'aider car la ... je désespère ...

    Désolé pour l'indentation... merci l'HTML ...


    @++

    Fred
    Les PCs c'est pas fait que pour jouer!

  2. #2
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Ca rentre pas dans ton mouseDragged() : :
    T'a pas la sortie systeme System.out.println("MouseDragged"); :

    Si ca rentre pas dedans essaye deja de voir si quand ta plus le MouseListener ca y rentre alors.
    Une fois que ta dessiné ta premiere tombe fais un removeMouseListener(MouseListener l) et laisse que le MouseMotionListener pour voir s'il marche.
    S'il marche alors c'est que ouais d'une facon ou d'une autre ton mouseListener masque le mouseMotionListener quand ya les 2 en meme temps.
    "Quand le sage montre la lune,
    L'idiot regarde le doigt."

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Points : 393
    Points
    393
    Par défaut
    Il semble que ton panelConcession soit "transparent" aux évènements souris; donc je te conseil:
    - étend JPanel et non JComponent
    - setOpaque(true);
    - setEnable(true) si ca existe pour les JPanel;

    Voilà sinon courage et "n'enterre pas le projet tout de meme"

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Bon j'ai suivi t conseils narffigo mais ca ne fonctionne pas...

    Voila ce ke j'ai ajouter jusye apres le System.out.println("MouseClicked") dans le MouseListsner de DrawingPane

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    MouseListener[] ml = DrawingPane.this.getMouseListeners();
    for(int i=0; i<ml.length; i++)
        DrawingPane.this.removeMouseListener(ml[i]);
    Bon grace a ce je ne peux plus dessiner de rectangle... mais je ne rentre toujours pas dans le mouseDragged de dessinConcession (sniff)

    Je v essayer d'etendre dessinConcession à JPanel et je post!

    Merci les gars !

    @++
    Les PCs c'est pas fait que pour jouer!

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 154
    Points : 143
    Points
    143
    Par défaut
    tu as fait un addMouseListener ou un addMouseMotionListener(). Pour pouvoir utiliser un mouseDragged tu doit ajouter aussi ton listener par addMouseMotionListener. Si tu veux je dois pouvoir dégoter un exemple de mouvement de composant et un autre de redimmenssionnement de composant.
    Bonne chance, Bonne journée, bonne année bonne santée et etc ...
    Youpi la vie est belle ! Et vive la fraicheur

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par Tiaps
    tu as fait un addMouseListener ou un addMouseMotionListener(). Pour pouvoir utiliser un mouseDragged tu doit ajouter aussi ton listener par addMouseMotionListener. Si tu veux je dois pouvoir dégoter un exemple de mouvement de composant et un autre de redimmenssionnement de composant.
    Bonjour

    Bien sur ke je fais un addMouseMotionListener !! lol

    Par contre pour t esemple ... je suis prenneur...


    Alors j'ai fait un new test.

    Une fois un rectangle dessiné je remove le MouseListener du drawingPane.

    J'ai essaye d'etendre dessinConcession a JPanel et faire les setOpaque et setEnabled mais ca ne marche pas non plus...

    J'ai meme ajouté un MouseListener a DessinConcession clik affiche juste un message"mouseClicked" quand on clik dessus..

    grace a un system.out.println ... je voi bien que DessinConcession est doté d'un MouseMotionListener et d'un MouseListener

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println(concession.getMouseMotionListener().length + " " + concession.getMouseListener().length);
    et il affiche bien 1 et 1 ... donc les listener de DessinConcession sont sencés etre actif!!! MAIS CA MARCHE PAS!!!!!!!!! (re ouiiiiiiiiiiiiiiiiiiinnnnnnnnn)

    A l'aide !!! lol

    Mais merci pour vos réponse!!!

    @++
    Les PCs c'est pas fait que pour jouer!

  7. #7
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    En fait ta classe DessinConcession te permet de dessiner ta tombe sur ton panel.
    Donc si tu fais que le dessin, ya pas vraiment ton composant sur ton panel, ya juste son dessin, c'est pour ca que t'arrive pas a recuperer le MouseMotionListener de ton composant, car il est juste dessiner, il n'existe pas vraiment dans ton panel.

    Il faut que tu recupere les coordonnees du clik et trouver le composant qui est sous ce click, et la tu peux le deplacer.

    Enfin si c'est bien comme ca que tu dessine tes composant (ce que j'ai supposé au début).
    "Quand le sage montre la lune,
    L'idiot regarde le doigt."

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Bon ya du nouveau

    qd je place directement un DessinConcession dans le DrawingPane, j'ai le droit de le bouger grace au mouseDragged ... meme si pour l'instant le résultat est pluto médiocre... (trainée noire du BasicStroke ... m'enfin je règleré plus tard)

    mais dès ke je dessine une nouvelle concession grace au mouseClicked du DrawingPane... je n'ai plus la main sur les dessins (je ne peux plus les bouger...)

    C maintenant sur ... le mouselistener du drawingPane cache le mouseMotionListener des dessins...

    donc si vous avez une tite ID pour m'aider ... ce serait sympa de poster !!

    Merci encore

    @++
    Les PCs c'est pas fait que pour jouer!

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par narfiggo
    En fait ta classe DessinConcession te permet de dessiner ta tombe sur ton panel.
    Donc si tu fais que le dessin, ya pas vraiment ton composant sur ton panel, ya juste son dessin, c'est pour ca que t'arrive pas a recuperer le MouseMotionListener de ton composant, car il est juste dessiner, il n'existe pas vraiment dans ton panel.

    Il faut que tu recupere les coordonnees du clik et trouver le composant qui est sous ce click, et la tu peux le deplacer.

    Enfin si c'est bien comme ca que tu dessine tes composant (ce que j'ai supposé au début).
    non naffigo ... maintenant DessinConcession étant JPanel donc dans mon constructeur tout comme dans le mouseDragged je fait un setBounds(x,y,longeur,largeur)... j'y avai pensé et je l'ai ajouté!!! (c dailleur ca ki m'a permi de bouger mes dessins...

    o fait ... encore un tit problème... j'ai le droit de bouger exactement 3 fois mon dessin... apres... je ne peux plus... normal.???
    Les PCs c'est pas fait que pour jouer!

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 154
    Points : 143
    Points
    143
    Par défaut
    Code pour le redimenssionnement de composant (il doivent avoir un bord) :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    package gui;
     
    import java.awt.*;
    import java.awt.event.*;
     
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.RootPaneContainer;
     
    public class ComponentBorderMouseListener extends MouseInputAdapter {
     
      private static final String NORTH= "N";
      private static final String NORTH_EAST = "NE";
      private static final String EAST = "E";
      private static final String SOUTH_EAST= "SE";
      private static final String SOUTH = "S";
      private static final String SOUTH_WEST = "SW";
      private static final String WEST = "W";
      private static final String NORTH_WEST = "NW";
     
      private JComponent component = null;
      private boolean borderSelected = false;
      private Point oldPosition =null;
      private String selectedBorder =null;
      public ComponentBorderMouseListener(JComponent component){
        this.component = component;
      }
     
     
      public void mousePressed(MouseEvent me){
        Point clickPoint = me.getPoint();
        if(isInBorder(clickPoint) /*&& ((me.getButton() & MouseEvent.BUTTON1_MASK) == MouseEvent.BUTTON1_MASK)*/){
          borderSelected = true;
          oldPosition = clickPoint;
          selectedBorder = getClickPosition(me);
    //      System.out.println("BorderMouseListener.java.mousePressed() => "+selectedBorder);
        }else{
          borderSelected=false;
          oldPosition = null;
          selectedBorder=null;
        }
      }
      public void mouseReleased(MouseEvent me){
        borderSelected=false;
        oldPosition = null;
        selectedBorder=null;
      }
     
      public void mouseDragged(MouseEvent me){
        if(borderSelected){
          Point diff=getMove(me);
     
          Point location = component.getLocation();
          Dimension size = component.getSize();
          if(selectedBorder.equals(NORTH)){
            //location
            location.translate(0,diff.y);
            //size
            size.setSize(size.width,size.height-diff.y);
            //old point
            oldPosition.translate(0,0);
          } else if(selectedBorder.equals(NORTH_EAST)){
            //location
            location.translate(0,diff.y);
            //size
            size.setSize(size.width+diff.x,size.height-diff.y);
            //old point
            oldPosition.translate(diff.x,0);
          } else if(selectedBorder.equals(EAST)){
            //location
            location.translate(0,0);
            //size
            size.setSize(size.width+diff.x,size.height);
            //old point
            oldPosition.translate(diff.x,0);
          } else if(selectedBorder.equals(SOUTH_EAST)){
            //location
            location.translate(0,0);
            //size
            size.setSize(size.width+diff.x,size.height+diff.y);
            //old point
            oldPosition.translate(diff.x,diff.y);
          } else if(selectedBorder.equals(SOUTH)){
            //location
            location.translate(0,0);
            //size
            size.setSize(size.width,size.height+diff.y);
            //old point
            oldPosition.translate(0,diff.y);
          } else if(selectedBorder.equals(SOUTH_WEST)){
            //location
            location.translate(diff.x,0);
            //size
            size.setSize(size.width-diff.x,size.height+diff.y);
            //old point
            oldPosition.translate(0,diff.y);
          } else if(selectedBorder.equals(WEST)){
            //location
            location.translate(diff.x,0);
            //size
            size.setSize(size.width-diff.x,size.height);
            //old point
            oldPosition.translate(0,0);
          } else if(selectedBorder.equals(NORTH_WEST)){
            //location
            location.translate(diff.x,diff.y);
            //size
            size.setSize(size.width-diff.x,size.height-diff.y);
            //old point
            oldPosition.translate(0,0);
          }
          component.setLocation(location);
          component.setSize(size);
     
     
     
     
     
     
        }
      }
      private String getClickPosition(MouseEvent me){
        String res = null;
        Insets insets =  component.getBorder().getBorderInsets(component);
        if(me.getX()<insets.left){
          if(me.getY()<insets.top){
            res = NORTH_WEST;
          }else if (me.getY()<component.getHeight()-insets.bottom){
            res=WEST;
          }else{
            res = SOUTH_WEST;
          }
        }else if (me.getX()<component.getWidth()-insets.right){
          if(me.getY()<insets.top){
            res = NORTH;
          }else if (me.getY()<component.getHeight()-insets.bottom){
     
          }else{
            res = SOUTH;
          }
        }else{
          if(me.getY()<insets.top){
            res = NORTH_EAST;
          }else if (me.getY()<component.getHeight()-insets.bottom){
            res = EAST;
          }else{
            res = SOUTH_EAST;
          }
        }
        return res;
      }
      /**
       * getMove
       *
       * @param me MouseEvent
       * @return Point
       */
      private Point getMove(MouseEvent me){
        Point diff = new Point(me.getX()-oldPosition.x,me.getY()-oldPosition.y);
        return diff;
      }
      private boolean isInBorder(Point point){
        boolean res = false;
        res = !getInBounds().contains(point);
        return res;
      }
     
      public Rectangle getInBounds(){
        Rectangle bounds = component.getBounds();
        bounds.setLocation(0,0);
     Insets insets =  component.getBorder().getBorderInsets(component);
     bounds.translate(insets.left,insets.top);
     bounds.setSize(bounds.width-insets.right-insets.left,bounds.height-insets.top-insets.bottom);
     return bounds;
     
      }
     
      public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setUndecorated(true);
        frame.getRootPane().setBorder(BorderFactory.createLineBorder(Color.BLACK,10));
     
        JPanel panel = new JPanel(){
          public void paintComponent(Graphics g){
            super.paintComponent(g);
            g.fillRect(10,10,100,100);
            g.drawImage(Toolkit.getDefaultToolkit().createImage("image.gif") ,15,15,this);
          }
        };
        panel.setBorder(BorderFactory.createLineBorder(Color.BLACK,10));
        panel.setBounds(100,100,100,100);
        ComponentBorderMouseListener bml2 = new ComponentBorderMouseListener(panel);
        panel.addMouseListener(bml2);
        panel.addMouseMotionListener(bml2);
        frame.getContentPane().setLayout(null);
        frame.getContentPane().add(panel);
     
        frame.setSize(400,400);
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setVisible(true);
      }
     
    }
    Pour le déplacement, je suis pas sur de la classe mais je t'en amène une sure lundi :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    import java.awt.event.MouseEvent;
    import javax.swing.event.MouseInputAdapter;
    import java.awt.*;
    import javax.swing.*;
     
    /**
     * <p>Titre : Unification des developpements BW</p>
     * <p>Description : </p>
     * <p>Copyright : Copyright (c) 2003</p>
     * <p>Société : Inventis</p>
     * @author not attributable
     * @version 1.0
     */
     
    public class MouseWindowMoverListener extends MouseInputAdapter
    {
    //	private static final boolean debug = Boolean.valueOf(com.inventis.bw.common.PropertiesManager.getInstance().getDebugProperty("com.inventis.bw.gui.util.MouseWindowMoverListener")).booleanValue();
      private static final boolean debug = false;
     
      Component comp = null;
      Point originalPosition = null;
     
      public MouseWindowMoverListener (Component comp)
      {
        if (debug)
        {
          System.out.println ("MouseWindowMoverListener.java.MouseWindowMoverListener() => " + comp);
        }
        this.comp = comp;
      }
     
      public MouseWindowMoverListener (Component comp, boolean isMaximizable)
      {
        this.comp = comp;
      }
     
      public void mouseDragged (MouseEvent e)
      {
        if (debug)
        {
          System.out.println ("MouseWindowMoverListener.java.mouseDragged() => hello ");
        }
     
        Point diff = new Point ( - (int) (originalPosition.getX () - e.getX ()), - (int) (originalPosition.getY () - e.getY ()));
        if (debug)
        {
          System.out.println ("MouseWindowMoverListener.java.mouseDragged() => " + diff);
        }
        Point p = comp.getLocation ();
        p.translate ( (int)diff.getX (), (int)diff.getY ());
        if (debug)
        {
          System.out.println ("MouseWindowMoverListener.java.mouseDragged() => comp.getLocation before : " + comp.getLocation ());
        }
        comp.setLocation (p);
        if (debug)
        {
          System.out.println ("MouseWindowMoverListener.java.mouseDragged() => comp.getLocation before : " + comp.getLocation ());
        }
      }
     
      public void mousePressed (MouseEvent me)
      {
        if (debug)
        {
          System.out.println ("MouseWindowMoverListener.java.mousePressed() => comp = " + comp);
        }
        originalPosition = me.getPoint ();
      }
     
      public void mouseReleased (MouseEvent me)
      {
        originalPosition = null;
      }
     
      public void mouseClicked (MouseEvent e)
      {
     
      }
    }
    Voilà, j'espère que ca va t'aider
    Bonne chance, Bonne journée, bonne année bonne santée et etc ...
    Youpi la vie est belle ! Et vive la fraicheur

  11. #11
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Citation Envoyé par i.took.the.red.pill
    mais dès ke je dessine une nouvelle concession grace au mouseClicked du DrawingPane... je n'ai plus la main sur les dessins (je ne peux plus les bouger...)
    T'as penser a faire un validate() ou revalidate() apres l'ajout de ton composant.


    Citation Envoyé par i.took.the.red.pill
    o fait ... encore un tit problème... j'ai le droit de bouger exactement 3 fois mon dessin... apres... je ne peux plus... normal.???
    Pas normal Ca vient peut etre du fait que quand tu bouge ca crée aussi une nouvelle tombe (comme t'avait au debut), et du coup au bout d'un moment ta plus de place pour deplacer ta tombe, si t'a mis en place une gestion de la place possible pour placer tes tombes. Sinon c'est louche
    "Quand le sage montre la lune,
    L'idiot regarde le doigt."

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par narfiggo
    Citation Envoyé par i.took.the.red.pill
    mais dès ke je dessine une nouvelle concession grace au mouseClicked du DrawingPane... je n'ai plus la main sur les dessins (je ne peux plus les bouger...)
    T'as penser a faire un validate() ou revalidate() apres l'ajout de ton composant.


    Citation Envoyé par i.took.the.red.pill
    o fait ... encore un tit problème... j'ai le droit de bouger exactement 3 fois mon dessin... apres... je ne peux plus... normal.???
    Pas normal Ca vient peut etre du fait que quand tu bouge ca crée aussi une nouvelle tombe (comme t'avait au debut), et du coup au bout d'un moment ta plus de place pour deplacer ta tombe, si t'a mis en place une gestion de la place possible pour placer tes tombes. Sinon c'est louche
    Pour l'instant ya aucune autre fonctionnalité ke d'ajouter des tombes et les bouger ... pas encore de gestion des places...

    En gros ... c pas normal !

    @++
    Les PCs c'est pas fait que pour jouer!

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    O fait ... a koi servent les fonctions validate() et revalidate() ?????
    Les PCs c'est pas fait que pour jouer!

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    G trouvé d'ou venait le pb de listener...


    Chui un ane.. en fait je faisia ke dessiner la concession je l'ajouté pas au panel .. (pas de add())..

    par contre encore des problème ac le déplacement

    je v essayer les classes de Tiaps...

    Merci les gars

    @++
    Les PCs c'est pas fait que pour jouer!

  15. #15
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Citation Envoyé par i.took.the.red.pill
    O fait ... a koi servent les fonctions validate() et revalidate() ?????
    L'appel à validate() permet d'indiquer au conteneur que ses composants ont changés, qu'on lui a rajouté ou enlevé un composant. C'est surtout au niveau de l'affichage graphique qu'il faut le faire pour signifier qu'on a changé les composants et qu'il faut donc que le prog se mette a jour.

    L'appel à revalidate() fait d'abord un appel à invalidate avant de reconstruire completement l'agencement de tes composants.

    Ces 2 méthodes sont parfois appelé automatiquement par le prog uand ya changement de composant,mais il faut des fois le faire manuellement pour mettre a jour l'affichage de son prog.
    "Quand le sage montre la lune,
    L'idiot regarde le doigt."

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

Discussions similaires

  1. [JSP]comment créer un listener pour ma base de données
    Par Ekimasu dans le forum Servlets/JSP
    Réponses: 14
    Dernier message: 10/05/2004, 14h49
  2. Listener sur un JPanel
    Par ptitelfe dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 27/03/2004, 13h14
  3. TNS:listener could not resolve SERVICE_NAME given in connect
    Par Sinclair dans le forum Administration
    Réponses: 15
    Dernier message: 20/08/2003, 17h26
  4. DoubleClick Listener & ENTER
    Par Pro_Fete dans le forum Composants
    Réponses: 4
    Dernier message: 27/01/2003, 13h23
  5. RTL60 ( la jsuis un peu confused)
    Par magdoz dans le forum Outils
    Réponses: 7
    Dernier message: 23/07/2002, 11h20

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