Un problème d'instanciation

Résolu
Signaler
Messages postés
4
Date d'inscription
dimanche 5 février 2006
Statut
Membre
Dernière intervention
12 juin 2009
-
Messages postés
4
Date d'inscription
dimanche 5 février 2006
Statut
Membre
Dernière intervention
12 juin 2009
-
Bonjour,

Je suis en train d'écrire un programme de modélisation, mais j'ai un petit souci avec une instanciation.

J'ai créé une fenetre graphique et lorsque j'appuye sur le bouton lancant la modélisation j'ai une erreur:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at fr.sam.cordeVibrante.vibrationCorde.CalculVibration.actionPerformed(CalculVibration.java:25)

Voici le code:

la class CalculVibration:

import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;

import fr.sam.cordeVibrante.interfac.FenetrePrincipale;

public class CalculVibration extends AbstractAction {
   

    private FenetrePrincipale fenetre;
    //private CordeVibrante cordeVibrante;
   
   
    public CalculVibration(FenetrePrincipale fenetre, String text){
         super(text);
         this.fenetre = fenetre;
    }
   
    public void actionPerformed(ActionEvent e){
       
        String longueurString = fenetre.getLongueurCorde().getText();

    } 
}

Classe FenetrePrincipale:

import fr.sam.cordeVibrante.vibrationCorde.CalculVibration;

import javax.swing.*;
import java.awt.*;

public class FenetrePrincipale extends JFrame{

    private JTextField textFieldLongueurCorde;
    private JTextField textFieldTemps;
    private JTextField textFieldTension;
    private JTextField textFieldDensité;
    private JTextField textFieldLieu;
    private JTextField textFieldHauteurDéformation;
    private JTextField textFieldDeltaX;
    private JTextField textFieldDeltaT;
    private JTextField textFieldVitesse;
    private JLabel labelAttente;
   
    public FenetrePrincipale(){
        super();
        build();
       
    }

    private void build(){
       
        setTitle("Modélisation d'une corde vibrante");
        setSize(1000, 500);
        setResizable(false);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setContentPane(construitPanel());
       
    }
   
    private JPanel construitPanel(){
       
        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout());
       
        panel.add(construitFenetreGraphique(), BorderLayout.CENTER);
        panel.add(construitFenetreParametres(), BorderLayout.EAST);
       
        return panel;
       
    }
   
    private JPanel construitFenetreGraphique(){
       
       
        JPanel fenetreGraphique = new JPanel();
        fenetreGraphique.setLayout(new FlowLayout());
       
        JLabel titreFenetreGraphique = new JLabel("Fenêtre Graphique");
        fenetreGraphique.add(titreFenetreGraphique );

        return fenetreGraphique;
       
    }
   
    private JPanel construitFenetreParametres(){
       
        JPanel fenetreParametres = new JPanel();
        fenetreParametres.setLayout(new GridLayout(22,2));
       
       
       
        JLabel labelLongueurCorde = new JLabel("Longueur de la Corde (m):");
        fenetreParametres.add(labelLongueurCorde);
       
        JTextField textFieldLongueurCorde = new JTextField("0");
        textFieldLongueurCorde.setColumns(10);
        fenetreParametres.add(textFieldLongueurCorde);
       
        JLabel labelTemps = new JLabel("Durée de la modélisation (s):");
        fenetreParametres.add(labelTemps);
       
        JTextField textFieldTemps = new JTextField("0");
        textFieldTemps.setColumns(10);
        fenetreParametres.add(textFieldTemps);
       
        JLabel labelTension = new JLabel("Tension de la corde (N):");
        fenetreParametres.add(labelTension);
       
        JTextField textFieldTension = new JTextField("0");
        textFieldTension.setColumns(10);
        fenetreParametres.add(textFieldTension);
       
        JLabel labelDensité = new JLabel("Densité de la corde(kg/m^3):");
        fenetreParametres.add(labelDensité);
       
        JTextField textFieldDensité = new JTextField("0");
        fenetreParametres.add(textFieldDensité);
       
        JLabel labelLieu = new JLabel("Lieu d'application de la déformation (entre 0 et L):");
        fenetreParametres.add(labelLieu);
       
        JTextField textFieldLieu = new JTextField("0");
        textFieldLieu.setColumns(10);
        fenetreParametres.add(textFieldLieu);
       
        JLabel labelHauteurDéformation = new JLabel("Hauteur de la déformation (m):");
        fenetreParametres.add(labelHauteurDéformation);
       
        JTextField textFieldHauteurDéformation = new JTextField("0");
        textFieldHauteurDéformation.setColumns(10);
        fenetreParametres.add(textFieldHauteurDéformation);
       
        JLabel labelNDeltaX = new JLabel("Nombre de division de la longueur:");
        fenetreParametres.add(labelNDeltaX);
       
        JTextField textFieldNDeltaX = new JTextField("0");
        textFieldNDeltaX.setColumns(10);
        fenetreParametres.add(textFieldNDeltaX);
       
        JLabel labelNDeltaT = new JLabel("Nombre de division du temps:");
        fenetreParametres.add(labelNDeltaT);
       
        JTextField textFieldNDeltaT = new JTextField("0");
        textFieldNDeltaT.setColumns(10);
        fenetreParametres.add(textFieldNDeltaT);
       
        JButton buttonCalcul = new JButton(new CalculVibration(this, "Calculer"));
        fenetreParametres.add(buttonCalcul);
       
        JLabel labelAttente = new JLabel("Coordonnées non calculées");
        fenetreParametres.add(labelAttente);
       
        JLabel labelVitesse = new JLabel("Vitesse (m/s):");
        fenetreParametres.add(labelVitesse);
       
        JTextField textFieldVitesse = new JTextField("0");
        textFieldVitesse.setColumns(10);
        fenetreParametres.add(textFieldVitesse);
       
        JButton buttonLancer = new JButton("Lancer");
        fenetreParametres.add(buttonLancer);
       
        JButton buttonEnergie = new JButton("Energie");
        fenetreParametres.add(buttonEnergie);
       
        return fenetreParametres;
       
    }
   
    public JTextField getLongueurCorde(){
        return textFieldLongueurCorde;
       
    }
   
    public JTextField getTemps() {
        return textFieldTemps;
       
    }
   
    public JTextField getTension() {
        return textFieldTension;
       
    }
   
    public JTextField getDensité() {
        return textFieldDensité;
       
    }
   
    public JTextField getLieu() {
        return textFieldLieu;
   
    }
   
    public JTextField getHauteurDéformation() {
        return textFieldHauteurDéformation;
       
    }
   
    public JTextField getDeltaX() {
        return textFieldDeltaX;
       
    }
   
    public JTextField getDeltaT() {
        return textFieldDeltaT;
       
    }
   
    public JTextField getVitesse() {
        return textFieldVitesse;
       
    }
   
    public JLabel getAttente(){
        return labelAttente;
    }

}

Si quelqu'un pouvait me dire ou est l'erreur.

Merci d'avance

2 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Salut,

D'après la stack trace, l'erreur vient de la ligne 25 de ta classe CalculVibration, à toi de mettre un point d'arrêt dans ton code à ce niveau et essayer de comprendre pourquoi l'une des variables que tu utilise est null.
Messages postés
4
Date d'inscription
dimanche 5 février 2006
Statut
Membre
Dernière intervention
12 juin 2009

Merci pour ton aide, c'était juste une erreur de débutant.