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

Langage Java Discussion :

Probleme tracage de cercle


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 5
    Par défaut Probleme tracage de cercle
    bonjour,

    J'aimerai pouvoir afficher des points dans une fenetre avec ma souris

    Code pour execution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public void mouseClicked(MouseEvent e) {
           if (Evenement=="Ajouter un noeud"){
                ab=e.getX();
                ord=e.getY();
                Graphics g = this.getGraphics(); 
                point p=new point(ab,ord);
                /*FG.AddPoint(p);"*/
                p.paintpoint(g);
                }
        }
    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
    /*
     * point.java
     *
     * Created on 1 novembre 2007, 17:14
     *
     * To change this template, choose Tools | Template Manager
     * and open the template in the editor.
     */
     
    package graphe;
     
    /**
     *
     * @author Julien
     */
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
     
    public class point extends JPanel{
     
        int abs,ord;
        /** Creates a new instance of point */
     
       point(int x,int y){
            abs=x;
            ord=y;
            }
     
     
     
        public void paintpoint(Graphics g){
           System.out.println(abs);
           System.out.println(ord);
           super.paintComponent(g);
           g.drawOval(abs, ord, 5, 5);
        }
    }
    erreur
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at javax.swing.JComponent.paintComponent(JComponent.java:766)
    at graphe.point.paintpoint(point.java:35)
    at graphe.Souris.mouseClicked(Souris.java:40)
    at java.awt.Component.processMouseEvent(Component.java:6041)
    at java.awt.Component.processEvent(Component.java:5803)
    at java.awt.Container.processEvent(Container.java:2058)
    at java.awt.Window.processEvent(Window.java:1787)
    at java.awt.Component.dispatchEventImpl(Component.java:4410)
    at java.awt.Container.dispatchEventImpl(Container.java:2116)
    at java.awt.Window.dispatchEventImpl(Window.java:2429)
    at java.awt.Component.dispatchEvent(Component.java:4240)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Février 2007
    Messages
    572
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 572
    Par défaut
    Tu as une NullPointerException parce que l'objet Graphics que tu passes est null.

    Il est null parce que probablement, le composant à qui tu demandes cet objet n'est pas affiché, ou n'est pas dans un composant affiché.

    Mais de toute facon, l'approche n'est pas la bonne : il ne faut pas dessiner directement dans le composant.
    Le principe, c'est que tu enregistres la description du dessin à faire (par exemple, le centre et le rayon du cercle), tu appelles repaint(), et tu fais le dessin dans paintComponent()

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 5
    Par défaut
    désolé je n'ai pas tout compris je peut avoir un bout de code stp?

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Février 2007
    Messages
    572
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 572
    Par défaut
    J'admets que mon explication est un peu sèche, et mériterait d'être plus détaillée.
    Mais un fait, il existe beaucoup de tutoriels sur le sujet.

    En voici un ici par exemple.

    Je pense qu'il repondra déjà à beaucoup de tes questions. C'est important de bien intégrer toutes les notions évoquées, elles reviennent régulièrement des que tu veux faire une interface graphique.

    Mais s'il reste des points obscures, il n'y aura pas de problèmes pour y répondre.

Discussions similaires

  1. définir rayon de cercle et tracage
    Par MATLAB007 dans le forum MATLAB
    Réponses: 13
    Dernier message: 10/03/2010, 19h08
  2. Probleme de Tracage d'Objet
    Par Danyel dans le forum VB.NET
    Réponses: 4
    Dernier message: 12/03/2008, 02h51
  3. Réponses: 14
    Dernier message: 21/07/2006, 19h56
  4. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  5. [Kylix] Probleme de nombre flottant!!
    Par yopziggy dans le forum EDI
    Réponses: 5
    Dernier message: 02/05/2002, 10h13

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