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ébutante] MouseListener et polygone


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 28
    Par défaut [Débutante] MouseListener et polygone
    Bonjour!

    Je devrais faire un programme où on clique des différentes figures et chaque figure fait écrire une chose différente sur l'écran. Avec un réctangle c'est facile:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if	(((x >= 285) && x <= (285+40)) &&		
    				((y >= 320) && y <= (320+40))){
    					txtValinnat.append("Vous avez cliqué sur la fenêtre" + '\n');
    				}
    Mais comment pourrais-je faire avec une triangle, quand son point est dans x=275, y=250 et largeur=80, hauteur=50?

    Merci beaucoup d'avance!

    Tootsi

  2. #2
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Cree un java.awt.geom.GeneralPath (en gros c'est un polygone, tu ajoutes les points qui le definissent un par un) et appelle ensuite la methode contains(int x, int y). Facile non ? De maniere generale, tu peux faire ca avec toutes les Shape de Java2D donc voici la liste complete :

    Arc2D, Arc2D.Double, Arc2D.Float, Area, BasicTextUI.BasicCaret, CubicCurve2D, CubicCurve2D.Double, CubicCurve2D.Float, DefaultCaret, Ellipse2D, Ellipse2D.Double, Ellipse2D.Float, GeneralPath, Line2D, Line2D.Double, Line2D.Float, Polygon, QuadCurve2D, QuadCurve2D.Double, QuadCurve2D.Float, Rectangle, Rectangle2D, Rectangle2D.Double, Rectangle2D.Float, RectangularShape, RoundRectangle2D, RoundRectangle2D.Double, RoundRectangle2D.Float

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 28
    Par défaut
    Merci Gfx, je connaissait pas ça!

    J'ai juste un problème pour appeller la methode contains, j'ai du mal à comprendre comment faire:
    J'ai fait comme ceci, mais ça marche pas:
    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
     
    GeneralPath triangle= new GeneralPath(); 
            triangle.moveTo(275,200);
            triangle.lineTo(195,300);
            triangle.lineTo(355,300);
            triangle.closePath();
            screen2D.draw(triangle); 
     
    ...
     
    public void mousePressed(MouseEvent e) {
     
    		int x = e.getX();
    		int y = e.getY();
     
    		triangle.contains(x,y);
    			if (true){
    				txtChoise.append("Vous avez cliqué sur trinagle" + '\n');
    			}
    }

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (triangle.contains(x,y)){
                txtChoise.append("Vous avez cliqué sur trinagle" + '\n');
             }
    c'est une methode qui renvoi un boolean.

  5. #5
    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
    ouh la la, un petit détour par les cours de base lu langage serait le bienvenu ( obligatoir même ! )
    ton instruction : "triangle.contains(x,y)" le résultat, tu en fais quoi ? --> RIEN
    ton instruction : "if(true)" sera FORCEMENT vérifiée, quel est l'intérêt de du "if" ??

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 28
    Par défaut
    Merci beaucoup let_me_in!

    Iohack: je suis en cours de base du langage . J'ai du mal a comprendre les booleén... heureusement j'ai trouvé ce site, où il y a des gens sympas qui aident à comprendre!

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 25/01/2006, 13h33
  2. [Kylix] Re Re: débutant sur Kylix et Linux.....
    Par Eclypse dans le forum EDI
    Réponses: 2
    Dernier message: 08/06/2002, 22h53
  3. [Kylix] Le débutant en Kylix et Linux....
    Par Eclypse dans le forum EDI
    Réponses: 2
    Dernier message: 08/05/2002, 10h37
  4. Réponses: 3
    Dernier message: 07/05/2002, 16h06
  5. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/04/2002, 23h18

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