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 :

détecter clic ---> Rubik's Cube


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 98
    Par défaut détecter clic ---> Rubik's Cube
    mon probleme : j'ai un GridLayout de 3 cases avec 3 carrés, je veux detecter un clik de souris sur chacun de ses 3 carrés afin d'effectuer l'action voulue correspondante au carré cliqué

  2. #2
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 98
    Par défaut Re: détecter clic ---> Rubik's Cube
    un peu de code serait peut etre mieux...


    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
     public class CubeFrame extends Frame implements MouseListener{
     
        private Cube modele;
     
        public void mousePressed(MouseEvent e) {
         ???   }
     
    public void mouseReleased(MouseEvent e) { }
        public void mouseEntered(MouseEvent e) { }
        public void mouseExited(MouseEvent e) { }
        public void mouseClicked(MouseEvent e) { }
     
    public CubeFrame(Cube c){
            super();
            modele = c;
            this.setLayout(new GridLayout(4,4));
            this.setBackground(Color.PINK);
     
    CubeCanvas haut = new CubeCanvas(this.getModele(),6);
            haut.addMouseListener(this);
            this.add(haut);
     
    CubeCanvas gauche = new CubeCanvas(this.getModele(),3);
            gauche.addMouseListener(this);
            this.add(gauche);

  3. #3
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    Quel est ton problème exactement ( à moins que tu ne veuilles que l'on fasse tout à ta place ) ? Sur quoi tu butes ? merci d'être un peu plus explicite.
    Pense aux balises [ code ], c'est plus lisible.

  4. #4
    Membre chevronné Avatar de let_me_in
    Inscrit en
    Mai 2005
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 441
    Par défaut
    en fait t'as quoi dans les cases? elles sont pas vide j'espere !

  5. #5
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par défaut


    Mais pourquoi, pourquoi, pourquoi s'embeter avec un GridLayout alors que 16 Rectangle* faisaient largement l'affaire...

    *Pour faire des jeux 2D, pensez Java 2D...
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  6. #6
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Bonjour,
    - soit tous tes carrés sont des boutons (bof...),
    - soit à partir de ton code, tu ajoutes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //dans le constructeur
    this.addMouseListener(this);
     
    //dans MouseClicked
    System.out.println("Composant : " + this.getComponentAt(e.getPoint());
    Ca répond à ta question ?
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  7. #7
    Membre chevronné Avatar de let_me_in
    Inscrit en
    Mai 2005
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 441
    Par défaut
    ou bien rajoute un mouseListener a chacun de tes composant afin
    d'effectuer l'action voulue correspondante au carré cliqué

  8. #8
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    int x = event.getX();
    int y = event.getY();
    for (Rectange[] line : grid) {
      for (Rectangle r : line) {
        if (r.contains(x, y)) {
          ...
          repaint();
          return;
        }
      }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    int x = event.getX();
    int y = event.getY();
    int areaCount = getComponentCount();
    for (int i = 0 ; i < areaCount ; i++) {
      Component component = getComponent(i);
      if (component.contains(x, y)) {
         CubeCanvas canvas = (CubeCanvas)component;
         ...
         repaint();
         return;
      }
    }
    En supposant bien sur que le composant CubeCanvas laisse passer le clic de la souris a son composant parent (setFocusTransverable() ou qq chose comme ca non ??).
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. [Coq] Groupes et Rubik's Cube
    Par SpiceGuid dans le forum Langages fonctionnels
    Réponses: 4
    Dernier message: 27/10/2009, 16h40
  2. Détecter clic de souris hors form
    Par MrThorr dans le forum VB.NET
    Réponses: 20
    Dernier message: 01/03/2009, 19h28
  3. Rubik's cube simple
    Par diker dans le forum OpenGL
    Réponses: 14
    Dernier message: 05/05/2008, 17h56
  4. [Concours] Rubik's Cube 3D
    Par Grand sorcier dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 21/06/2006, 00h40

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