Voilà mon but est de récuperer des lignes, et franchement je debute en Java , et je crois que je pourrai pas résoudre ça sans votre aide
J'ai un classe qui dérive de JPanel dans laquelle on trace des courbe GraphePh, j'y ai inseré un attribut private
Plus loin dans le constructeur j'ai défini mes shapes comme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public Class GraphePh{ .... private List <Shape> shapes ; ...}
Ensuite les courbes se dessinent au fil du temps alors je remplis en meme temps ma collection de forme dans une methode AfficherPoint (en fait c des lignes)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 shapes = new ArrayList<Shape>(); // collection de forme utilisable à la pause
et J'ai aussi fait un accesseur pour la List, je sais pas si c correc, parce que je m'y connais pas trop
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public Afficher Point(){ ..... if(ok){ g.drawLine(abcisseEnCours-1+x, tab_coor[indiceTab-(int)pas][i][0], abcisseEnCours+x, tab_coor[indiceTab][i][0]); shapes.add(new Line2D.Double(abcisseEnCours-1+x, tab_coor[indiceTab-(int)pas][i][0], abcisseEnCours+x, tab_coor[indiceTab][i][0])); } .... if(ok){ {g.drawLine(abcisseEnCours-1+x, tab_coor[indiceTab-(int)pas][i][c], abcisseEnCours+x, tab_coor[indiceTab][i][c]); shapes.add(new Line2D.Double(abcisseEnCours-1+x, tab_coor[indiceTab-(int)pas][i][c], abcisseEnCours+x, tab_coor[indiceTab][i][c])); } }
Ensuite j'ai crée une JPanel, qui affichera cette fameuse collec de Shape, comme ça j'affiche à part sur une autre fenetre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public List <Shape> getmesShapes() { // On ajoutera les shapes au JPanel return shapes; }
mais les messages arrivent au moment où la fen contenant le panel surgit !
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 public class affichShapes extends JPanel{ private AppletPh2 app; private List <Shape> shapes ; public affichShapes (){ super(); this.setSize(600,600); //List <Shape> shapes = new ArrayList<Shape>(); } protected void paintComponent(Graphics g) { // TODO Raccord de méthode auto-généré super.paintComponent(g); Graphics2D g2d = (Graphics2D) g; g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); //Pour chaque forme de la collection shapes = app.getFenetreGraphe().getGraphePh().getmesShapes(); for(Shape shape : shapes) { //On dessine la forme g2d.draw(shape); } } }
Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException
at AppletPh2.fenetreGraphe.affichShapes.paintComponent(affichShapes.java:35)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JLayeredPane.paint(Unknown Source)
c'est ça qui me dit qui va pas :
MERCI
Code : Sélectionner tout - Visualiser dans une fenêtre à part shapes = app.getFenetreGraphe().getGraphePh().getmesShapes();
Partager