Java.lang.NullPointerException

Résolu/Fermé
fabien.joubert
Messages postés
35
Date d'inscription
vendredi 15 juin 2007
Statut
Membre
Dernière intervention
31 juillet 2008
- Modifié le 28 mars 2008 à 20:54
 nairox - 24 déc. 2015 à 11:45
Bonjour,
je débute en Java, je suis tombé sur la fameuse java.lang.NullPointerException
mais que dois faire pour régler ce problème?
Je sais certainement qu'un pointeur ne dois pointer justement sur rien, ou qu'il existe un pb d'indice,
mais en relisant mon code je ne vois pas ce qui provoque ceci,
si quelqu'un peut m'aider, ca m'aiderait énormément.

En gros :
J'ai 3 classes, une fentre et 2 panneaux.
J'ai un panneau muni d'écouteurs,
mais dés que je veux utiliser des propriétés des 2 autres classes : java.lang.NullPointerException s'affiche

/*
 * Main.java
 *
 * Created on 7 janvier 2008, 19:21
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package fab_paint;

import java.awt.BorderLayout;
import java.awt.Container;
import javax.swing.JFrame;

/**
 *
 * @author Medion
 */
public class Main {
    
    private JFrame fenetre;
    private int largeur = 500, hauteur=300;
    private int horizontale = 300 , verticale = 200;
    private Panneau pan;
    private Ardoise ard;
    private java.util.ArrayList<Forme> tabForme = new java.util.ArrayList<Forme>();
    
    /** Creates a new instance of Main */
    public Main() {
        fenetre = new JFrame();
        fenetre.setTitle("Fab_Paint");
        fenetre.setSize(largeur,hauteur);
        fenetre.setLocation(horizontale, verticale);
        pan = new Panneau();
        fenetre.add(BorderLayout.SOUTH, pan);
        ard = new Ardoise();
        fenetre.add(ard);
        fenetre.setVisible(true);
    }
    
    public Panneau get_pan(){
        return pan;
    }
    
    public java.util.ArrayList get_tabForme(){
        return this.tabForme;
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Main m = new Main();
    }
    
}
/*
 * Panneau.java
 *
 * Created on 7 janvier 2008, 19:25
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package fab_paint;

import com.sun.org.apache.bcel.internal.classfile.JavaClass;

/**
 *
 * @author Medion
 */
public class Panneau extends javax.swing.JPanel{
    
    private javax.swing.ButtonGroup bg;
    private javax.swing.JRadioButton jrb1, jrb2;
    
    /** Creates a new instance of Panneau */
    public Panneau() {
        setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));
        setBackground(java.awt.Color.YELLOW);
        bg = new javax.swing.ButtonGroup();
        jrb1 = new javax.swing.JRadioButton("Cercle", false);
        jrb2 = new javax.swing.JRadioButton("Rectangle", false);
        bg.add(jrb1);
        bg.add(jrb2);
        add(jrb1);
        add(jrb2);
    }
    
    public boolean selec_ovale(){
        return (jrb1.isSelected()==true && jrb2.isSelected()==false); 
    }
    
    public boolean selec_rect(){
        return (jrb1.isSelected()==false && jrb2.isSelected()==true); 
    }
    
}
/*
 * Ardoise.java
 *
 * Created on 7 janvier 2008, 19:24
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package fab_paint;

import java.awt.event.MouseEvent;

/**
 *
 * @author Medion
 */
public class Ardoise extends javax.swing.JPanel implements java.awt.event.MouseListener, java.awt.event.MouseMotionListener{
    
    private java.awt.Cursor c;
    private int x, y;
    private Main m;
    private java.awt.Graphics g;
    private int i_clicked=0, i_pressed=0, i_released=0, 
            i_entered=0, i_exited=0, i_dragged=0, i_moved=0;
    
    /** Creates a new instance of Ardoise */
    public Ardoise() {
        this.addMouseListener(this);
        this.addMouseMotionListener(this);
        setBackground(java.awt.Color.WHITE);
        setCursor(c = new java.awt.Cursor(java.awt.Cursor.CROSSHAIR_CURSOR));
    }

    public void mouseClicked(MouseEvent e) {
        /*Invoked when the mouse button has been clicked (pressed and released) on a component. */
        i_clicked +=1;
        System.out.println("mouseClicked    " + i_clicked + "e.getX() =" + e.getX() + "e.getY()" + e.getY());
    }

    public void mousePressed(MouseEvent e) {
        i_pressed +=1;
        System.out.println("mousePressed    " + i_pressed + "e.getX() =" + e.getX() + "e.getY()" + e.getY());
        this.x=e.getX();
        this.y=e.getY();
    }

    public void mouseReleased(MouseEvent e) {
        i_released +=1;
        System.out.println("mouseReleased   " + i_released + "e.getX() =" + e.getX() + "e.getY()" + e.getY());
        if(m.get_pan().selec_rect()){
            Rectangle r = new Rectangle(this.x,this.y,e.getX(),e.getY());
            System.out.println("Rectangle r");   
        }
        else 
            if(m.get_pan().selec_ovale()){
            Ovale o = new Ovale(this.x,this.y,e.getX(),e.getY());
            System.out.println("Ovale o");   
        }
        else{
            
            Rectangle r = new Rectangle(this.x,this.y,e.getX(),e.getY());
            System.out.println("Rectangle r");
        }
    }

    public void mouseEntered(MouseEvent e) {
        /*Invoked when the mouse enters a component.*/
        i_entered +=1;
        System.out.println("mouseEntered    " + i_entered);        
    }

    public void mouseExited(MouseEvent e) {
        i_exited +=1;
        System.out.println("mouseExited " + i_exited);        
    }

    public void mouseDragged(MouseEvent e) {
        i_dragged +=1;
        System.out.println("mouseDragged    " + i_dragged);      
    }

    public void mouseMoved(MouseEvent e) {
        i_moved +=1;
        System.out.println("mouseMoved  " + i_moved);        
    }


}

4 réponses

fabien.joubert
Messages postés
35
Date d'inscription
vendredi 15 juin 2007
Statut
Membre
Dernière intervention
31 juillet 2008
15
14 janv. 2008 à 16:00
oh merci beaucoup. Je te suis très reconnaissant. Tu m'as beaucoup aidé.
Ca me semble très simple maintenant bien que je n'y ai pas pensé avant.
Ca marche!
4