HELP POUR DU JAVA

Résolu
femeril1805 Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   -  
 vintz72 -
Bonjour,

Je bloque sur un programme je n'arrive pas à voir ce qui me déclenche une "Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException "
La ligne incriminée est la suivante " this.model.refreshPerson(person);" je vous joint le code si quelqu'un pouvait m'orienter ce serait vraiment sympa !!
j'ai mis entre ============== le code qui pose pb....ainsi que la création de la méthode
===============
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/*
* AddFrame.java
*
* Created on 8 nov. 2009, 15:33:14
*/
package crudapplication;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JTextField;

/**
*
* @author Administrateur
*/
public class AddFrame extends javax.swing.JFrame {

public static final int MODE_CREATE = 0;
public static final int MODE_UPDATE = 1;
private int mode = MODE_CREATE;
private PersonsModel model = null;
private Person person = null;

/** Creates new form AddFrame */
public AddFrame(PersonsModel personsTableModel, int mode) {
this.model = personsTableModel;
initComponents();
setVisible(true);
setMode(mode);
}

public AddFrame(PersonsModel personsTableModel, int mode, Person person) {

this(personsTableModel, mode);
this.person = person;
textFirstName.setText(person.getFirstName());
textLastName.setText(person.getLastName());
}

private void setMode(int mode) {
this.mode = mode;

if (mode == MODE_CREATE) {
this.setTitle("Create Mode");
} else {
this.setTitle("Update Mode");
}
}

/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

labelFirstName = new javax.swing.JLabel();
labelLastName = new javax.swing.JLabel();
textFirstName = new javax.swing.JTextField();
textLastName = new javax.swing.JTextField();
okButton = new javax.swing.JButton();
cancelButton = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setName("Form"); // NOI18N

org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(crudapplication.CrudApplication.class).getContext().getResourceMap(AddFrame.class);
labelFirstName.setText(resourceMap.getString("labelFirstName.text")); // NOI18N
labelFirstName.setName("labelFirstName"); // NOI18N

labelLastName.setText(resourceMap.getString("labelLastName.text")); // NOI18N
labelLastName.setName("labelLastName"); // NOI18N

textFirstName.setText(resourceMap.getString("textFirstName.text")); // NOI18N
textFirstName.setName("textFirstName"); // NOI18N

textLastName.setText(resourceMap.getString("textLastName.text")); // NOI18N
textLastName.setName("textLastName"); // NOI18N

okButton.setText(resourceMap.getString("okButton.text")); // NOI18N
okButton.setName("okButton"); // NOI18N
okButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
okButtonActionPerformed(evt);
}
});

cancelButton.setText(resourceMap.getString("cancelButton.text")); // NOI18N
cancelButton.setName("cancelButton"); // NOI18N
cancelButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cancelButtonActionPerformed(evt);
}
});

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(labelLastName, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(labelFirstName, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 54, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(textFirstName, javax.swing.GroupLayout.DEFAULT_SIZE, 198, Short.MAX_VALUE)
.addComponent(textLastName, javax.swing.GroupLayout.DEFAULT_SIZE, 198, Short.MAX_VALUE)))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(okButton)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cancelButton)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(labelFirstName)
.addComponent(textFirstName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(labelLastName)
.addComponent(textLastName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(okButton)
.addComponent(cancelButton))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);

pack();
}// </editor-fold>
======================================================================
private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {

if ((textFirstName.getText().length() > 0) && (textLastName.getText().length() > 0)) {

if (mode == MODE_CREATE) {
Person newPerson = new Person();
newPerson.setFirstName(textFirstName.getText());
newPerson.setLastName(textLastName.getText());
this.model.addPerson(newPerson);

} else {
this.person.setFirstName(textFirstName.getText());
this.person.setLastName(textLastName.getText());
======================================================================


this.model.refreshPerson(person); <<<<<<<<<<<<<<< ligne incriminée


======================================================================
}

this.dispose();
}
}

======================================================================


//la méthode qui pose pb

public void refreshPerson(Person person) { <<<<<< Methode en question
int rowIndex = persons.indexOf(person);
fireTableRowsUpdated(rowIndex, rowIndex);
}

======================================================================

private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
dispose();
}
// Variables declaration - do not modify
private javax.swing.JButton cancelButton;
private javax.swing.JLabel labelFirstName;
private javax.swing.JLabel labelLastName;
private javax.swing.JButton okButton;
private javax.swing.JTextField textFirstName;
private javax.swing.JTextField textLastName;
// End of variables declaration

public void setCancelButton(JButton cancelButton) {
this.cancelButton = cancelButton;
}

public void setLabelFirstName(JLabel labelFirstName) {
this.labelFirstName = labelFirstName;
}

public void setLabelLastName(JLabel labelLastName) {
this.labelLastName = labelLastName;
}

public void setOkButton(JButton okButton) {
this.okButton = okButton;
}

public void setTextFirstName(JTextField textFirstName) {
this.textFirstName = textFirstName;
}

public void setTextLastName(JTextField textLastName) {
this.textLastName = textLastName;
}
// End of variables declaration


//Geters
public JButton getCancelButton() {
return cancelButton;
}

public JLabel getLabelFirstName() {
return labelFirstName;
}

public JLabel getLabelLastName() {
return labelLastName;
}

public JButton getOkButton() {
return okButton;
}

public JTextField getTextFirstName() {
return textFirstName;
}

public JTextField getTextLastName() {
return textLastName;
}
}

MERCI
A voir également:

22 réponses

choubaka Messages postés 39442 Date d'inscription   Statut Modérateur Dernière intervention   2 105
 
this.model fait référence à quoi ?
0
vintz72
 
A mon avis, le souci est que ton model est null. Ta classe est utilisée comment ? Notamment le constructeur est-il bien appelé avec un PersonsModel non null ?
0