Erreur : Exception in thread "main" java.lang.NullPointerException

oz34 Messages postés 2 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 12 décembre 2007 - 12 déc. 2007 à 18:14
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 13 déc. 2007 à 09:54
Bonjour, voila je suis en train de réaliser un mini-draw tout simple. J'ai une erreur que j'arrive pas à corriger, si quelqu'un aurais une idée....merci

//L'erreur est ici lorsque je le lance... au niveau du g.drawOval(...)
// Class ovale
package

Mini_draw;

import

java.awt.*;

public

class ovale
extends Figure{

public
void dessine(Graphics g){

g.drawOval(

getRectenglobant().

point_d_ancrage_X,getRectenglobant().

point_d_ancrage_Y,getRectenglobant().

longueur_cote_horizontal,getRectenglobant().

longueur_cote_vertical);

g.setColor(Color.

GREEN);

}

}

// Class MaFenetre




package

Mini_draw;
import

java.awt.Graphics;
import

java.awt.Color;
import

javax.swing.*;

public
class MaFenetre {

public
static
void main(String[] args){System.

out.println(
"Demarrage");Fenetre fen =

new Fenetre();

Panneau mon_panel =

new Panneau();

Figure fig1 =

new ovale();

Color couleur_de_contour =

new Color(1);fig1.setCouleur_de_contour(couleur_de_contour);

Rect_englobant rect_fig1 =

new Rect_englobant();rect_fig1.setLongueur_cote_horizontal(200);

rect_fig1.setLongueur_cote_vertical(100);

rect_fig1.setPoint_d_ancrage_X(100);

rect_fig1.setPoint_d_ancrage_Y(100);

fig1.setRectenglobant(rect_fig1);

Graphics my_graphics = mon_panel.getGraphics();

System.

out.println(
"D");fig1.dessine(my_graphics);

fen.add(mon_panel);

fen.setVisible(

true);}

}

 

3 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
12 déc. 2007 à 19:58
Salut,

tu peux reposter avec l'indentation stp car là c'est pas super lisible....

de plus il manque les classes :
Rect_englobant
Fenetre
Panneau
Figure

la méthode getRectenglobant() de ton objet ovale ou de l'objet Rect_englobant

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
oz34 Messages postés 2 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 12 décembre 2007
12 déc. 2007 à 20:15
oui pardon....

/*--------------------------------------

* ---------Figure---------------------

----------------------------------------*/

package

Mini_draw;

import java.awt.*;

abstract
class Figure {

//--------------ATTRIBUTS---------//

protected Color
couleur_de_contour;

protected Color
couleur_de_fond =
null;
protected Rect_englobant
rectenglobant;

//-----------CONSTRUCTEUR & ACCESSEUR---------//

public Figure(){};

public Figure(Color couleur_de_contour, Color couleur_de_fond,Rect_englobant rectenglobant) {

this.
couleur_de_contour = couleur_de_contour;

this.
couleur_de_fond = couleur_de_fond;

this .
rectenglobant = rectenglobant;}

public Color getCouleur_de_contour() {
return
couleur_de_contour;}

public
void setCouleur_de_contour(Color couleur_de_contour) {
this.
couleur_de_contour = couleur_de_contour;}

public Color getCouleur_de_fond() {
return
couleur_de_fond;}

public
void setCouleur_de_fond(Color couleur_de_fond) {
this.
couleur_de_fond = couleur_de_fond;}

public Rect_englobant getRectenglobant() {
return
rectenglobant;}

public
void setRectenglobant(Rect_englobant rectenglobant) {

this.
rectenglobant = rectenglobant;}

//-----------METHODES-------------//

public String toString(){
return
null;};

public
void dessine_color(Color couleur_contour){}

abstract
void dessine(Graphics g);}

/*--------------------------------------

* ---------Panneau---------------------

----------------------------------------*/

package

Mini_draw;

import javax.swing.*;

import java.awt.*;

public
class Panneau
extends JPanel{

//--------------ATTRIBUTS---------//

private Collection_figure
monDessin =
new Collection_figure();

//-----------CONSTRUCTEUR & ACCESSEUR---------//

public Collection_figure getMonDessin() {

return
monDessin;}

public
void setMonDessin(Collection_figure monDessin) {

this.
monDessin = monDessin;}

//-----------METHODES-------------//

public
void MypaintComponent(Graphics g){

this.paintComponent(g);

monDessin.dessin_all(g);

}

/*--------------------------------------

* ---------Fenetre---------------------

----------------------------------------*/



package

Mini_draw;

import

javax.swing.*;

 

class

Fenetre
extends JFrame {

public Fenetre(){
setTitle(
"Mini-Draw");setBounds(100,100,600,400);

//MENU BARJMenuBar menu =

new JMenuBar();
setJMenuBar(menu);

//Menu--> FICHIERJMenu mfichier =

new JMenu(
"Fichier");
menu.add(mfichier);
JMenuItem open =
new JMenuItem(
"Ouvrir");
mfichier.add(open);
JMenuItem save =
new JMenuItem(
"Sauver");
mfichier.add(save);
JMenuItem close =
new JMenuItem(
"Quitter");
mfichier.add(close);

//MENU --> FIGURESJMenu mfigures =

new JMenu(
"Figures");
menu.add(mfigures);
JMenuItem rectangle =
new JMenuItem(
"Rectangle");
mfigures.add(rectangle);
JMenuItem carre =
new JMenuItem(
"Carré");
mfigures.add(carre);
JMenuItem rond =
new JMenuItem(
"Rond");
mfigures.add(rond);

//Menu --> Couleurs JMenu mcouleur =

new JMenu(
"Couleurs");
menu.add(mcouleur);

//Menu --> fond JMenu mfond =

new JMenu(
"Fond");
menu.add(mfond);

}}




/*--------------------------------------

* ---------Rect_englobant---------------------

----------------------------------------*/

package

Mini_draw;

public
class Rect_englobant {

//--------------ATTRIBUTS---------//

protected
int
point_d_ancrage_X;

protected
int
point_d_ancrage_Y;

protected
int
longueur_cote_horizontal;

protected
int
longueur_cote_vertical;

//-----------CONSTRUCTEUR & ACCESSEUR---------//

public Rect_englobant(){}

public Rect_englobant(
int point_d_ancrage_X,
int point_d_ancrage_Y,
int longueur_cote_horizontal,
int longueur_cote_vertical) {

super();
this.
point_d_ancrage_X = point_d_ancrage_X;

this .
point_d_ancrage_Y = point_d_ancrage_Y;

this.
longueur_cote_horizontal = longueur_cote_horizontal;

this .
longueur_cote_vertical = longueur_cote_vertical;}

 

public
int getPoint_d_ancrage_X() {
return
point_d_ancrage_X;}

 

public
void setPoint_d_ancrage_X(
int point_d_ancrage_X) {

this.
point_d_ancrage_X = point_d_ancrage_X;}

 

public
int getPoint_d_ancrage_Y() {

return
point_d_ancrage_Y;}

 

public
void setPoint_d_ancrage_Y(
int point_d_ancrage_Y) {

this.
point_d_ancrage_Y = point_d_ancrage_Y;}

 

public
int getLongueur_cote_horizontal() {

return
longueur_cote_horizontal;}

 

public
void setLongueur_cote_horizontal(
int longueur_cote_horizontal) {

this.
longueur_cote_horizontal = longueur_cote_horizontal;}

 

public
int getLongueur_cote_vertical() {

return
longueur_cote_vertical;}

 

public
void setLongueur_cote_vertical(
int longueur_cote_vertical) {

this.
longueur_cote_vertical = longueur_cote_vertical;};

//-----------METHODES-------------//

}

et voila merci.....
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
13 déc. 2007 à 09:54
Salut,

il manque toujours du code de plus vu que tu ne précise pas où l'exception se produit pas facile de savoir qui peux déclancher l'exception....

pour info dans la classe Figure tu fais :
public String toString() {
    return null;
}

hors il ne faut pas retourner null.

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
Rejoignez-nous