Erreur Exception in thread

Fermé
karat24 Messages postés 1 Date d'inscription dimanche 21 juin 2009 Statut Membre Dernière intervention 21 juin 2009 - 21 juin 2009 à 18:52
Bonjour,


Je suis en train de crée un programme qui me permet de visualiser les photos en utilisant une base de donnés Mysql.

J'ai crée un classe connexion qui contient des méthodes pour communiquer avec la base de données :

[CODE]package ImagesBrowser;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

public class Connexion {

private Connection conn = null;
private Statement smt = null;
public static int retour;


static {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}


public Connexion(final String host, final String login, final String pass, final String base) {
try {
conn = DriverManager.getConnection("jdbc:mysql://" + host + "/"
+ base + "?" + "user=" + login + "&password=" + pass);
smt = conn.createStatement();
retour=1;
System.out.println("Ok");
} catch (SQLException e) {
e.printStackTrace();
}
}

public static int getRetour(){
return retour;
}


public boolean executeInsert(String query) {
try {
return smt.execute(query);
} catch (SQLException e) {
System.err.println(query);
e.printStackTrace();
return false;
}
}

public int executeUpdate(String query) {
try {
return smt.executeUpdate(query);
} catch (SQLException e) {
e.printStackTrace();
System.err.println(e.getSQLState());
System.err.println(e.getMessage());
return -1;
}
}

public ResultSet executeSelect(String query) {
try {
return smt.executeQuery(query);
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}

public void printResultSet(ResultSet r) {
try {
r.beforeFirst();
ResultSetMetaData meta = r.getMetaData();
int nbCol = meta.getColumnCount();
for (int i = 1; i < nbCol + 1; ++i) {
if (i > 1)
System.out.print(", ");
System.out.print(meta.getColumnLabel(i));
}
System.out.println("");
while (r.next()) {
for (int i = 1; i < nbCol + 1; ++i) {
if (i > 1)
System.out.print(", ");
System.out.print(r.getString(i));
}
System.out.println("");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public ResultSet executeSelect1(String query) {
try {
return smt.executeQuery(query);
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}

public void printResultSet1(ResultSet r) {
try {
r.beforeFirst();
ResultSetMetaData meta = r.getMetaData();
int nbCol = meta.getColumnCount();
for (int i = 1; i < nbCol + 1; ++i) {
if (i > 1)
System.out.print(", ");
System.out.print(meta.getColumnLabel(i));
}
System.out.println("");
while (r.next()) {
for (int i = 1; i < nbCol + 1; ++i) {
if (i > 1)
System.out.print(", ");
System.out.print(r.getString(i));
}
System.out.println("");
}
} catch (SQLException e) {
e.printStackTrace();
}
}

public List<String> getSColumnFromResultSet(ResultSet r, String col) {
List<String> l = new ArrayList<String>();
try {
r.beforeFirst();
while (r.next())
l.add(r.getString(col));
}
catch (SQLException e) {
e.printStackTrace();
}
return (l);
}
}
/CODE


j'ai une autre classe AskAlbumPanel qui crée une fenêtre pour la demande du nom de l'album :


[CODE]package ImagesBrowser;

import java.sql.Statement;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;



public class AskAlbumNamePanel extends JFrame implements ActionListener{
private static final long serialVersionUID = 2763707468537479660L;
private JButton boutonEnvoyer = new JButton("Envoyer");
private JTextField NomAlbum = new JTextField();
private JLabel EntrerNomAlbum = new JLabel("Entrer le nom de l'album :");
private int largeur =400;
private int hauteur = 200;
private Connexion execute = null;
public Statement stm = null;


public AskAlbumNamePanel(){
setTitle("Nom de l'Album");
setSize(largeur,hauteur);
JPanel p = new JPanel();
JPanel p1 = new JPanel();
p1.setBorder(BorderFactory.createEmptyBorder(10,0,30,0));
JPanel p2 = new JPanel();
p.setLayout(new BorderLayout());
p.add(NomAlbum,BorderLayout.CENTER);
p.add(EntrerNomAlbum,BorderLayout.WEST);
p.add(p1,BorderLayout.NORTH);
p.add(p2,BorderLayout.SOUTH);
JPanel pSud=new JPanel();
p2.setBorder(BorderFactory.createEmptyBorder(10,0,40,0));
pSud.add(p2,BorderLayout.NORTH);
pSud.add(boutonEnvoyer,BorderLayout.SOUTH);
p.add(pSud,BorderLayout.SOUTH);

boutonEnvoyer.addActionListener(this);

Container contentPane = getContentPane();
contentPane.add(p);
setResizable(false);
setVisible(true);
setLocationRelativeTo(null);
//setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public void actionPerformed(ActionEvent actionEvent) {
if (actionEvent.getSource() == boutonEnvoyer) {
final String albumName = NomAlbum.getText();
if (albumName.length()==0){
System.out.println("Pas de texte");
setTitle("Erreur : Entrer un nom d'album !");

}
else{
System.out.println(albumName);
getTexte(albumName);
String queryString = "INSERT INTO `Album` VALUES (NULL,`albumName`)";
execute.executeInsert(queryString);
setTitle("Nom de l'album envoyer !");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
setTitle("Chargement ");
try {
Thread.sleep(300);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
setTitle("Chargement . ");
try {
Thread.sleep(300);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
setTitle("Chargement . . ");
try {
Thread.sleep(300);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
setTitle("Chargement . . . ");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
dispose();
}

}
}

public String getTexte(String Texte){
return Texte;
}

}
/CODE

Le problème c'est lorsque j'essaie d'envoyer le nom de l'album à partir de JTextField, on obtiens cette erreur :

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at ImagesBrowser.AskAlbumNamePanel.actionPerformed(AskAlbumNamePanel.java:70)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)


Pouvez vous m'éclaircir sur ce problème ?