erreur java.lang.NullPointerException impossible à résoudre
bonjour
je pense que la question que je vais vous poser, vous l'avez dejà vu plein de fois..
je commence à peter un boulon lol car impossible de résoudre mon soucis, meme apres des recherches sur google et sur ce site.
mon erreur : echec pilote : java.lang.NullPointerException
(j'utilise JDBC pour connexion à Mysql)
j'ai lu pour ce genre d'erreur : "appel d'une methode ou utilisation d'un champ avec réference null" mais dans mon code je ne vois pas où il y a un null....
voici le code qui me permet d'effectuer l'addition des prix correspondant au nom des elements cochés
Code:
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
|
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Properties;
import java.math.BigDecimal;
public class carte extends JFrame implements ActionListener
//, ItemListener
//implements ItemListener
{
// Properties : Cette classe est un dictionnaire permettant d'associer deux chaînes de caractères.
private Properties props = new Properties();
// Hashtable() : permet de stocker des valeurs en les associant à des
// identificateurs uniques calculés à partir de clés
private Hashtable associationProduitsPrix = new Hashtable();
private JPanel panel;//Déclaration de l'objet JPanel
private JLabel prixx, type;
private JButton bouton;
private Checkbox sale,chek;
public carte()
{
panel = new JPanel();
panel.setLayout(new FlowLayout(FlowLayout.LEFT,5,2));
String pilote = "com.mysql.jdbc.Driver";
try
{
//Chargement de mon pilote
Class.forName(pilote);
//Connexion à ma base mysql avec mon login et mot de passe
Connection connexion = DriverManager.getConnection("jdbc:mysql://localhost/creperie","root","root");
//Création de mon statement qui va me permettre d'executer mes requetes
Statement instruction = connexion.createStatement();
ResultSet resultatt = instruction.executeQuery("SELECT DISTINCT type FROM carte ");
while(resultatt.next())
{
type = new JLabel(resultatt.getString("type"));
panel.add(type);
Statement instructionn = connexion.createStatement();
ResultSet resultat = instructionn.executeQuery("SELECT nom, prix FROM carte WHERE type = '"+resultatt.getString("type")+"'");
while(resultat.next())
{
String nom = props.getProperty(resultat.getString("nom"));
sale = new Checkbox(nom);
String prix = props.getProperty(resultat.getString("prix"));
prixx = new JLabel(prix);
Produit produit = new Produit();
produit.setPrix(new BigDecimal(prix));
//sale.addItemListener(this);
//panel.add(type);
panel.add(sale);
associationProduitsPrix.put(sale,produit);
}
}
}
catch (Exception e)
{
System.out.println("echec pilote : "+e);
}
bouton = new JButton("ticket");
panel.add(bouton);
bouton.addActionListener(this);//On ajoute la fenêtre en tant qu'écouteur du bouton*/
}
/*Checkbox che;
public void itemStateChanged(ItemEvent evt)
{
che= (Checkbox)evt.getSource();
}*/
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == bouton)
{
BigDecimal total = new BigDecimal("0"); //initialise à 0
Enumeration enu = associationProduitsPrix.keys();
while (enu.hasMoreElements())
{
chek = (Checkbox)enu.nextElement();
if (chek.getState())
{
Produit produit = (Produit)associationProduitsPrix.get(chek);
BigDecimal prix = produit.getPrix();
total = total.add(prix);
}
}
JOptionPane.showMessageDialog(null, "total :" +total);
}
}
} |
voilà...
merci ebaucoup de vouloir m'aider.
en attendant je vais continuer à chercher..