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 :

position d'une barre d'outils+evenements de la souris


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 31
    Par défaut position d'une barre d'outils+evenements de la souris
    Bonjour pour tous,
    j'ai crée un code java contenant une interface graphique qui comporte une barre d'outil
    l'interface est:
    Interface m
    la barre est :
    jToolBar1

    Mon but est de poursuivre les positions de la barre d'outil lors de sa deplacement
    Mais quand je deplace la barre ,le code provoque des erreurs que je n'ai pas pu les corriger

    alors j'ai crée cette classe

    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
    import java.awt.* ;
    import java.awt.event.*;
    import java.util.*;
    import java.applet.Applet;
    import javax.swing.JToolBar;
     
     
    class ActionMouse extends MouseAdapter
    {
     
            Interface c ;
            JToolBar jToolBar;
            ActionMouse(Magic_Med c)
    {this.c=c;
     
     
    }
            ActionMouse( JToolBar jToo)
    {
    jToolBar =jToo;
     
    }
     
     
    public void mousePressed(MouseEvent e)
    {
     
             Object source = e.getSource();
            if (source == c.jToolBar1)
                if (source == c.jToolBar1)
                 {System.out.println("la barre") ;
             System.out.println ("x="+e.getX() +"y="+e.getY() );
     
    }
            public void mouseReleased(MouseEvent e)
            { 
     
               Object source = e.getSource();
                      if (source == c.jToolBar1)
                if (source == c.jToolBar1)
                 {System.out.println("la barre") ;
             System.out.println ("x="+e.getX() +"y="+e.getY() );
            }
    }
    et dans la fonction main située dans la classe Interface:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     public static void main(String[] args) throws Exception
        {
     
               Interface m = new m();
                m.addMouseListener(new ActionMouse(m ));
                 m.jToolBar1 .addMouseListener(new ActionMouse(m.jToolBar1  ));
     
        }
    voici les erreurs :

    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    java.lang.NullPointerException
     
    	at ActionMouse.mousePressed(ActionMouse.java:29)
     
    	at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:222)
     
    	at java.awt.Component.processMouseEvent(Component.java:5097)
     
    	at java.awt.Component.processEvent(Component.java:4897)
     
    	at java.awt.Container.processEvent(Container.java:1569)
     
    	at java.awt.Component.dispatchEventImpl(Component.java:3615)
     
    	at java.awt.Container.dispatchEventImpl(Container.java:1627)
     
    	at java.awt.Component.dispatchEvent(Component.java:3477)
     
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
     
    	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3195)
     
    	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
     
    	at java.awt.Container.dispatchEventImpl(Container.java:1613)
     
    	at java.awt.Window.dispatchEventImpl(Window.java:1606)
     
    	at java.awt.Component.dispatchEvent(Component.java:3477)
     
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
     
    	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
     
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
     
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
     
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
     
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
     
    java.lang.NullPointerException
     
    	at ActionMouse.mouseReleased(ActionMouse.java:38)
     
    	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:232)
     
    	at java.awt.Component.processMouseEvent(Component.java:5100)
     
    	at java.awt.Component.processEvent(Component.java:4897)
     
    	at java.awt.Container.processEvent(Container.java:1569)
     
    	at java.awt.Component.dispatchEventImpl(Component.java:3615)
     
    	at java.awt.Container.dispatchEventImpl(Container.java:1627)
     
    	at java.awt.Component.dispatchEvent(Component.java:3477)
     
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
     
    	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
     
    	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
     
    	at java.awt.Container.dispatchEventImpl(Container.java:1613)
     
    	at java.awt.Window.dispatchEventImpl(Window.java:1606)
     
    	at java.awt.Component.dispatchEvent(Component.java:3477)
     
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
     
    	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
     
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
     
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
     
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
     
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
     
    read.java:100)

    s'il vous plait aider moi pour corriger ces erreurs
    et Merci

  2. #2
    Membre expérimenté Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Par défaut
    Bonjour,
    A froid, je dirai que ton est null lors de la construction de ton object. Tu devrais rajouter une trace pour vérifier. Genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    class ActionMouse extends MouseAdapter
    {
     
    Interface c ;
    JToolBar jToolBar;
    ActionMouse(Magic_Med c)
     
    {
      if (c == null){
          System.err.println("Attention, initialisation avec une valeur null";
      }
      this.c=c;
    }
    et juste pour blinder :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public void mousePressed(MouseEvent e)
    {
      Object source = e.getSource();
      if (c == null){
        System.err.println("Attention c est null");
        return;
      }
      if (source == c.jToolBar1)
      { 
        System.out.println("la barre") ;
        System.out.println ("x="+e.getX() +"y="+e.getY() );
      }
    }
    ATTENTION : cela devrait t'aider à debugger en rajoutant des traces, mais ce n'est pas une solution perenne, ni même une solution fonctionnellement satisfaisante.

  3. #3
    Membre expérimenté Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Par défaut
    Il me semble que ton message a changé, je complète ma réponse.

    Tu initialises ton object comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new ActionMouse(m.jToolBar1  )
    donc forcement, ton object c est null car tu ne l'initialises pas dans le constructeur qui prend en paramètre un JtollBar, d'où la null pointer exception.

  4. #4
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 31
    Par défaut position d'une barre d'outils+evenements de la souris
    merci de votre aide
    mais,je n'ai pas trouvé la solution pour corriger les erreurs
    s'il vous plait aider moi
    c'est tres important pour mes etudes
    et merci de vos aides

  5. #5
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 31
    Par défaut position d'une barre d'outils+evenements de la souris
    merci,
    maintenant le code ne contient aucune erreur
    mais il n'y a pas l'affichage:


    System.out.println("la barre") ;
    System.out.println ("x="+e.getX() +"y="+e.getY() );

    à votre avis,pourquoi?

    ET ENCORE UN MERCI POUR VOS AIDES

  6. #6
    Membre expérimenté Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Par défaut
    Lorsque tu crées ton object avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new ActionMouse(m.jToolBar1  )
    tu passes dans ton constructeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            ActionMouse( JToolBar jToo)
    {
    jToolBar =jToo;
     
    }
    ce qui fait que jamais tu n'initialises ton object D'ailleurs appeler une interface Interface n'est pas une bonne idée, tu devrais trouver autre chose.

    Ce qui fait que c vaut toujours null.

    Un object null n'a pas d'existence propre, tu ne peux donc pas appeler une méthode sur cette object. Dans ta méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public void mousePressed(MouseEvent e)
    {
      Object source = e.getSource();
     
     
      if (source == c.jToolBar1)
      { 
        System.out.println("la barre") ;
        System.out.println ("x="+e.getX() +"y="+e.getY() );
      }
    }
    Tu essaies quand même d'utiliser une méthode sur un object null à la ligne c.jToolBar1 , d'où la NullPointerException.

    Pour corriger, il faut que tu initialises ton object de type c dans tous tes constructeurs ou alors, que tu fasses un test pour vérifier si ton object c est non null avant de vouloir l'utiliser.

  7. #7
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 31
    Par défaut
    merci
    mais jusqu'à maintenant ,je n'ai pas pu poursuivre la position de la barre d'outil
    malgre que le code ne contient pas des erreurs
    s'il vous plait aider moi pour pouvoir poursuivre la position de la barre d'outils
    merci beaucoup de vos aides

  8. #8
    Membre expérimenté Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Par défaut
    L'exemple de code que je t'ai donné était juste pour te monter que le problème venait bien de ton object c. Comme il est null, la ligne if (c==null) return; te sort de ta méthode sans aller plus loin. IL FAUT INITIALISER ton object sinon tu ne pourras jamais passer dans la suite de ta méthode.

    ATTENTION : cela devrait t'aider à debugger en rajoutant des traces, mais ce n'est pas une solution perenne, ni même une solution fonctionnellement satisfaisante.
    Ce n'est évidement pas (je repète) une solution viable. Elle sert juste à sortir sans lever d'exception pour tes tests, pour vérifier que le problème venait bien de la valeur c, mais il ne faut pas le laisser comme ça. Tu dois faire en sorte que ton object c ne soit pas null. Modifie tes constructeurs pour initaliser l'object c.

Discussions similaires

  1. [VCL] Comment faire une barre d'outils skinable comme FireFox ?
    Par DarkChamallo dans le forum Composants VCL
    Réponses: 23
    Dernier message: 07/05/2008, 18h03
  2. Gérer une barre d'outils
    Par Jean Claude BOULET dans le forum Access
    Réponses: 2
    Dernier message: 07/10/2004, 22h54
  3. Ajouter une barre d'outils à une sous fenêtre
    Par barthelv dans le forum MFC
    Réponses: 6
    Dernier message: 23/04/2004, 14h17
  4. [] Raccourci clavier pour bouton d'une barre d'outil
    Par Sébastien dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 24/03/2003, 17h02

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