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

Graphisme Java Discussion :

tracer un trait entre deux points


Sujet :

Graphisme Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 84
    Par défaut tracer un trait entre deux points
    Bonjour à tous,

    Je suis entrain de crée un programme qui permet de sélectionner des points de coordonnées et une fois 2 points rentrée, je voudrais tracer un trait entre les deux.

    J'arrive à récupérer les coordonnées x, y des points, à tracer une ligne en lui fournissant des valeurs, mais je n'arrive pas a tracer un trait entre les deux points dont je récupérer les coordonnées.

    Voilà mon code pour récuperer les coordonnées des points :
    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
    package finale;
     
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
     
     
    class MaFenetre extends JFrame{
        private JPanel pan;
        private int horizontal,vertical;
     
        MaFenetre(){ //constructeur
            setTitle("Gestion de clics");
            setSize(300,150);
            pan =new JPanel();
            getContentPane().add(pan);
            pan.addMouseListener(new EcouteClic(pan)); // La fenetre sera son propre écouteur d'évenement de la souris
        }
        class EcouteClic extends MouseAdapter{
            private JPanel pan;
            private int nbpoint =100;
            private int i=0;
     
            public EcouteClic(JPanel pan){
                this.pan = pan;
            }
            public void mouseClicked (MouseEvent e){
     
                int [] tabx = new int[nbpoint];
                int [] taby = new int[nbpoint];
                tabx [i]= e.getX();
                taby [i] = e.getY();
                System.out.println("coordonnées"+e.getX()+","+e.getY());
                Graphics g = pan.getGraphics();
                g.drawOval(e.getX(),e.getY(), 5, 5);
                g.dispose();
            }
        }
    }
    public class clicsouris {
     
        public static void main(String[] args) {
            MaFenetre fen = new MaFenetre();
            fen.setVisible(true);
        }
    }
    Celui pour tracer un trait :
    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
    package finale;
     
    import javax.swing.*;
    import java.awt.*;
     
    class Mafenetre extends JFrame{
        private JPanel pan;
        Mafenetre(){
            setTitle("Essai Dessin");
            setSize(300,150);
            pan = new Paneau();
            getContentPane().add(pan);
            pan.setBackground(Color.CYAN); //couleur de fond cyan
        }
    }
    class Paneau extends JPanel{
        public void paintComponent (Graphics g){
            super.paintComponent(g);
            g.drawLine(15, 10, 100, 50);
        }
    }
    public class PremDes {
        public static void main(String[] args) {
            Mafenetre fen = new Mafenetre();
            fen.setVisible(true);
        }
    }
    Merci d'avance pour votre aide cordialement takepaf

  2. #2
    Membre expérimenté

    Étudiant
    Inscrit en
    Mai 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 200
    Par défaut
    Bonsoir,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    class Paneau extends JPanel{
    Tu l'utilises où ???

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    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 901
    Billets dans le blog
    54
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    class MaFenetre extends JFrame{
    [...]
            pan = new Paneau();
            getContentPane().add(pan);
    Il faudrai penser a verifier le layout de ta JFrame (ou du moins de son contentPane) et/ou a donner une taille a ton panel.
    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

  4. #4
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 84
    Par défaut
    Désolé de ne pas avoir répondu avant, mais étant au forum INFOSUP je n'avais pas accès a mon ordinateur. Ma classe panneau me permet de créer mon trait avec les valeur que je lui donne.

    Merci floflo_2006 et bouye pour vos réponse, je regarde le layout de ma JFrame demain matin. Je vous tiens au courant de l'avancement.

    Cordialement Takepaf

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 84
    Par défaut
    Ayant trouver la solution, je vous la fourni. Merci à tous pour votre aide.

    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
    package finale;
     
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
     
    class MaFenetre extends JFrame{
        private JPanel pan;
     
        MaFenetre(){                                                                                // constructeur
            setTitle("Gestion de clics");
            setSize(300,150);
            pan =new JPanel();
            getContentPane().add(pan);
            pan.addMouseListener(new EcouteClic(pan));                                              // La fenetre sera son propre écouteur d'évenement de la souris
            dispose();
        }
        class EcouteClic extends MouseAdapter {
            private JPanel pan;
            private int nbpointMAX = 100;                                                           // nombre maximun de coordonnées en x que l'utilisateur peut donner
            private int nbpoint=0;                                                                  // nombre maximun de coordonnées en y que l'utilisateur peut donner
            private int [] tabx = new int[nbpointMAX];
            private int [] taby = new int[nbpointMAX];
            private Graphics2D g ;                                                                     
     
            public EcouteClic(JPanel pan){
                this.pan = pan;
            }
     
            @Override
            public void mouseClicked (MouseEvent e){
                g = (Graphics2D) pan.getGraphics();
                if((e.getModifiers()&InputEvent.BUTTON1_MASK)!=0){                                  // test si le bouton droit de la souris est appuyer
                    tabx [nbpoint]= e.getX();                                                       // récupére les coordonnées du curseur de la souris en x
                    taby [nbpoint] = e.getY();                                                      // récupére les coordonnées du curseur de la souris en y
                    g.drawOval(e.getX(),e.getY(), 5, 5);                                            // crée un cercle à partir des coordonnées x,y du curseur de la souris
                    if (nbpoint>0){                                                                 // on test si l'administrateur à pris plus de 1 point de coordonnèes 
                        g.setPaint(Color.BLACK);
                        g.setStroke(new BasicStroke(8));
                        g.drawLine(tabx [nbpoint-1],taby [nbpoint-1], tabx [nbpoint], taby [nbpoint]);  // crée un trait reliant les deux cercle entre eux pour crée le mur
                    }
                    nbpoint=nbpoint+1;
                }
                g.dispose();
            }
        }
    }
    public class clicsouris {
     
        public static void main(String[] args) {
            MaFenetre fen = new MaFenetre();                                                        // Création de la JFrame au lancement du programme
            fen.setVisible(true);
        }
    }
    A très bientôt sur le forum

    Cordialement takepaf

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

Discussions similaires

  1. [Google Maps] Afficher le trait du parcours entre deux point
    Par angel2000 dans le forum APIs Google
    Réponses: 2
    Dernier message: 31/07/2014, 19h16
  2. Réponses: 2
    Dernier message: 20/06/2012, 12h00
  3. tracer un trait entre deux button
    Par sliminformatique dans le forum C++Builder
    Réponses: 8
    Dernier message: 04/03/2008, 22h09
  4. Réponses: 6
    Dernier message: 27/04/2007, 22h50
  5. Calcul de distance entre deux points en WGS84
    Par marieR dans le forum Langage
    Réponses: 5
    Dernier message: 03/08/2006, 17h07

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