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 :

Rendre une DrawLine cliquable


Sujet :

AWT/Swing Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 64
    Points : 36
    Points
    36
    Par défaut Rendre une DrawLine cliquable
    Bonjour,

    J aimerais rendre uniquement une drawLine cliquable mais je ne vois pas comment m'y prendre pour que ce soit uniquement la drawLine.

    Merci de votre aide .

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 978
    Points
    7 978
    Par défaut
    Pour chacun de tes dessins, utilise une Shape. (Line2D par exemple implemente l'interface shape comme la plupart des truc de dessins).

    Et pour chacun de tes dessins cliquables, tu les ajoutes dans une liste de shape.

    Ensuite au moment voulu (clique ou rectangle de selection ou autres), tu teste l'intersection entre la point de click (ou le rectangle) et ta liste de shape. De cette manière tu saurais sur quelle ligne tu as cliqué.

    Tu px en plus du shape ajouter une autre informations eventuellement (dans une autre liste ou sous forme d'un objet qui regroupe la shape et l'informations) afin de pouvoir facilement savoir sur quoi tu as cliqué et a quoi il correspond dans ton "modèle".
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 64
    Points : 36
    Points
    36
    Par défaut
    N aurais tu pas un exemple puisque sa M a l'air confus..
    Désolé je débute en graphique ..

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 64
    Points : 36
    Points
    36
    Par défaut
    J'ai compris finalement seulement Line2D ne prend pas les int :/

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Tu peux caster les int en double. Ou alors utiliser la classe Point :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Point pointDebut = new Point( 10, 10);
    Point pointArrivee = new Point( 100, 100);
    Line2D line = new Line2D.Double(pointDebut, pointArrivee);
    Et si je te dis qu'en plus cette classe Point est la même que celle utilisée pour récupérer le point où on clique avec la souris, tu dois pouvoir imaginer comment on peut dessiner une ligne, ou la sélectionner. Il y a juste 2 petites choses que j'ajouterais à ce qu'a dit @Wax78. La première, c'est que comme il est pas forcément évident de cliquer précisemment sur un point, pour faire la sélection, utiliser un petit rectangle qui entoure le point du clic :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Point pointClic = mouseEvent.getPoint();
    Rectangle2D rectangle = new Rectangle2D.Double(pointClic.x - 3, pointClic.y-3, 6, 6); // le clic est au mileur d'un carré 6x6 : à toi de voir le réglage et la précision que tu veux pour le clic
     
    for( Line2D ligne : lignes ) { // on parcourt la liste de ligne
        if ( ligne.intersects( rectangle ) {
             // il y a intersection, donc on est pas loin d'avoir cliquer sur cette ligne
        }
    }
    La seconde, c'est qu'il peut y avoir plusieurs lignes pas loin du point de clic. Il te faut décider d'un moyen d'en choisir une. La plus proche, la première de la liste,... à toi de voir.

    Eventuellement, une autre chose, mais peut-être plus complexe pour toi : si tu as beaucoup de lignes, les parcourir à chaque fois peut être très long. Il y a des méthodes pour accèlerer ce genre de chose. L'une d'elle s'appelle le quadtree. Si tu penses en avoir besoin, il y a un tutoriel sur le sujet sur Developpez.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 978
    Points
    7 978
    Par défaut
    J'ai parlé du rectangle Joel D'ailleurs on peut y rajouter encore, est-ce qu'on prends les lignes qui sont totalement incluse dans le rectangles, ou celles qui ont un point inclus.

    Sinon pour le quadtree, certes c'est vrai, mais entres nous, faut déjà avoir la dose de truc dessinés.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par wax78 Voir le message
    J'ai parlé du rectangle Joel
    Je pensais que tu parlais là de lasso (alors que moi je parlais de clic). Mais techniquement, c'est similaire.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  8. #8
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 978
    Points
    7 978
    Par défaut
    Bah au pire le click reste un rectangle de dimension de 1 pixel, comme ca ca couvre les 2 cas. Mais un lasso ca je n'avais pas encore pensé (enfin les utilisateurs jusque la ne me l'ont jamais demandés non plus).
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [MySQL] Rendre une image cliquable
    Par Flushovsky dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 25/11/2010, 15h49
  2. [MooTools] Rendre une div cliquable
    Par al3xzo dans le forum Bibliothèques & Frameworks
    Réponses: 16
    Dernier message: 23/05/2010, 10h53
  3. Rendre une image cliquable
    Par setthe dans le forum wxPython
    Réponses: 8
    Dernier message: 24/10/2008, 22h23
  4. [HTML] Comment rendre une image cliquable?
    Par Nixar dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 11/03/2008, 09h58
  5. rendre une page cliquable
    Par gloglo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 04/01/2007, 10h48

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