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

2D Java Discussion :

Dessiner une ligne


Sujet :

2D Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 40
    Points : 19
    Points
    19
    Par défaut Dessiner une ligne
    Bonjour,

    Je voudrais faire un petit programme de dessin qui dessine une ligne dans un Jpanel.

    Voila mon probleme , je debute en java et a chaque fois que je regarde sur le net pour savoir comment dessiner une ligne je trouve une fonction assez semblable a celle ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    void paint (Graphics g)  {
            g.drawLine(1,1,300,300); 
      }
    Comment fait t'on pour appeler cette fonction ? Je n'arrive pas a l'appeler a chaque fois java me dit que la variable g n'a pas ete initialise.

    Mon but finale est de faire une fonction de la sorte:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    void dessinerligne(int x,int x2, int y , int y2)
           g.drawline(x,x2,y,y2);
    }
    Est ce que quelqu'un peut m'aider , je suis largué et j'arrive pas à trouver de solution. Merci par avance.

    [ Modéré par Bulbo ]
    Ajout d'un tag dans le titre
    Les Règles du Forum

  2. #2
    Membre actif Avatar de snoop
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 354
    Points : 294
    Points
    294

  3. #3
    Membre habitué Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Points : 160
    Points
    160
    Par défaut
    en gros g est le graphics du component sur lequel tu vas dessiner...
    donc si tu veux faire une methode telle que tu la présente il faut qu'elle prenne en arg un java.awt.Graphics et cette méthode ne pourra etre appelé que dans ta redéfinition de la méthode paint(Graphics g) de ton composant... en gros...donc déjà que tu ne donnes pas d'argument graphics à ta méthode c'est un peu normal que java te sorte cette erreur...cela signifie qu'il a une valeur null donc que tu ne peux pas l'utiliser

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 67
    Points : 31
    Points
    31
    Par défaut
    en gros tu peux doix faire un truc ds le genre (j'ai pas testé)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    void paint (Graphics g)  { 
            dessinerligne(1,1,300,300,g); 
      }
    et puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    void dessinerligne(int x,int x2, int y , int y2,Graphics g) 
           g.drawline(x,x2,y,y2); 
    }

  5. #5
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    essaie de redéfinir la méthode paintComponent(Graphics).... dedans tu mets ton code de dessin.

    ensuite, au lieu d'appeler paintComponent, tu appeleras juste repaint()..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public void paintComponent(Graphics g){
      super.paintComponent(g);
     
      g.setColor(Color.RED);
      g.drawLine(1,1,20,20);
    }
    et tu appelle cette méthode en faisant
    comme ça, ton dessin est permanent. si tu réduis la fenêtre, ou bien qu'elle est recouverte par une autre, ton trait va rester


  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 40
    Points : 19
    Points
    19
    Par défaut merci
    Merci à tous de vos conseils , j'y suis arrivé.
    Si qqn à le même problème qu'il n'hésite pas à me contacter.

    ciao

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 40
    Points : 19
    Points
    19
    Par défaut merci
    Merci à tous de vos conseils , j'y suis arrivé.
    Si qqn à le même problème qu'il n'hésite pas à me contacter.

    ciao

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

Discussions similaires

  1. Dessiner une ligne de DBGrid suivant critères
    Par nbutin dans le forum C++Builder
    Réponses: 3
    Dernier message: 15/06/2006, 17h43
  2. Dessiner une ligne
    Par hbzied dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 26/04/2006, 20h01
  3. Comment dessiner une ligne dans un Chart ?
    Par libititi dans le forum Composants VCL
    Réponses: 3
    Dernier message: 16/06/2005, 14h56
  4. [Image]Dessiner une ligne en dynamique
    Par Bugmaster dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 02/08/2004, 11h56
  5. Dessiner une ligne dans un cube transparent ?
    Par Muetdhiver dans le forum OpenGL
    Réponses: 4
    Dernier message: 04/05/2004, 11h06

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