Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Bonjour ;
je développe une petite application java pour récupérer les news en utilisant les flux RSS j'utilise sqlite comme base de données pour enregistrer les informations d'un site (tel que nom site ; url ; flux rss;favoris ou pas (1/0) j'ai une classe JFrame nommée (GestionSite) permet de visualiser tous les sites dans un panel ainsi que les sites favoris voici le code de la méthode permettant de le faire
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
|
public String afficherLesSites() {
panelPrefere.removeAll();
panelPrefere.repaint();
panelPrincipal.removeAll();
panelPrincipal.repaint();
ArrayList<Site> sites = null;
sites = new ArrayList<Site>();
sites = SiteManager.listePrincipale;
System.out.println("taile liste principale" + sites.size());
int pos = 10;//position liste site principale
int pos2 = 10;//position liste site prefere
ItemSite item;
//affichage de tous les sites
for (int i = 0; i < sites.size(); i++) {
item = new ItemSite();
item.setNomSite(sites.get(i).getNomSite().toString());
item.setFav(sites.get(i).getFavoris());
item.setColor();
item.setBounds(10, pos, 600, 62);
pos = pos + 64;
panelPrincipal.add(item);
if (panelPrincipal.getHeight() < pos) {
panelPrincipal.setPreferredSize(new Dimension(700, panelPrincipal.getHeight() + 400));
panelPrincipal.repaint();
//activer le horizontal scrollbar
jScrollPane1.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
}
/**
* *affichage liste favoris
*/
if (sites.get(i).getFavoris().equals("1")) {
item = new ItemSite();
item.setNomSite(sites.get(i).getNomSite().toString());
System.out.println("sites.get(i).getNomSite().toString()" + sites.get(i).getNomSite() + "");
item.setFav(sites.get(i).getFavoris());
item.setColor();
item.setBounds(10, pos2, 600, 62);
pos2 = pos2 + 64;
System.out.println("nom site" + item.getNomSite());
panelPrefere.add(item);
if (panelPrefere.getHeight() < pos2) {
panelPrefere.setPreferredSize(new Dimension(700, panelPrefere.getHeight() + 400));
panelPrefere.repaint();
//activer le horizontal scrollbar
jScrollpan2.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
}
}
}
return "les sites ont été affichés ";
} |
j'ai une classe JPanel nommée ItemSite contenant deux boutons favoris (pour soit mettre un site dans la liste des favoris ou bien défavoriser pour mettre un site dans la liste principal et l'enlever des favoris)et supprimer pour supprimer un site
voici le code de cette classe
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
|
public String setColor()
{
if( isFav().equals("0")){
favoris.setIcon(new ImageIcon("noir.png"));
favoris.setText("non favoris");
favoris.setToolTipText("site non favoris");
favoris.setBackground(Color.white);
}
//le site n' est pas favorisé
else{
favoris.setIcon(new ImageIcon("jaune.png"));
favoris.setText("favoris");
favoris.setToolTipText("site favorisé");
favoris.setBackground(Color.blue);
}
siteName.setText(getNomSite());
System.out.print("itemsitelabel"+siteName.getText());
return "le site"+nomSite+" a été bien coloré";
}
private void favorisMousePressed(java.awt.event.MouseEvent evt) {
if(isFav().equals("1")){
favoris.setIcon(new ImageIcon("jaune.png"));
setFav("0");
favoris.setToolTipText("rendre favorisé");
favoris.setText("non favoris");
favoris.setBackground(Color.white);
try {
gs.crt.favorisToPrincipal(getNomSite());
System.out.print(" gs.crt.favorisToPrincipal(getNomSite())"+ gs.crt.favorisToPrincipal(getNomSite()));
} catch (SQLException ex) {
Logger.getLogger(ItemSite.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(ItemSite.class.getName()).log(Level.SEVERE, null, ex);
}
gs.afficherLesSites();
}
else{
favoris.setIcon(new ImageIcon("noir.png"));
setFav("1");
favoris.setToolTipText("rendre défavorisé");
favoris.setText("favoris");
favoris.setBackground(Color.blue);
try {
gs.crt.principalToFavoris(getNomSite());// c'est ici ou pointe l'erreur crt une instance de la classe Controller
} catch (SQLException ex) {
Logger.getLogger(ItemSite.class.getName()).log(Level.SEVERE, null, ex);
}
gs.afficherLesSites();
}
}
public String setColor()
{
if( isFav().equals("0")){
favoris.setIcon(new ImageIcon("noir.png"));
favoris.setText("non favoris");
favoris.setToolTipText("site non favoris");
favoris.setBackground(Color.white);
}
//le site n' est pas favorisé
else{
favoris.setIcon(new ImageIcon("jaune.png"));
favoris.setText("favoris");
favoris.setToolTipText("site favorisé");
favoris.setBackground(Color.blue);
}
siteName.setText(getNomSite());
System.out.print("itemsitelabel"+siteName.getText());
return "le site"+nomSite+" a été bien coloré";
} |
la classe Controller methode principalToFavoris
Code:
1 2 3 4 5 6 7
|
public ArrayList<Site> principalToFavoris(String site) throws SQLException {
sm.prencipaleToPreferee(site); //sm instance de la classe SiteManager
System.out.println("hollaaaaaaaaaaaaa" + sm.getListeSiteFavoris().size());
return sm.getListeSiteFavoris();
} |
classe SiteManager methode prencipaleToPreferee
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
public String prencipaleToPreferee(String nomSite) throws SQLException {
try {
con = base.connectDB();
} catch (ClassNotFoundException ex) {
Logger.getLogger(SiteManager.class.getName()).log(Level.SEVERE, null, ex);
}
String l = "1";
String sql = "UPDATE news SET favoris = 1 WHERE nomSite='" + nomSite + "' ";
try {
PreparedStatement ps = con.prepareStatement(sql);
ps.execute();
con.commit();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, e);
e.printStackTrace();
System.out.println("Erreur SupprimerSite " + e.getMessage());
} |
et le truc quand je clique sur le bouton favoris ou supprimer la table news ne se mets pas à jour
et j'ai une erreur
Code:
1 2 3 4 5
|
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at vue.ItemSite.favorisMousePressed(ItemSite.java:192)
at vue.ItemSite.access$100(ItemSite.java:21)
at vue.ItemSite$2.mousePressed(ItemSite.java:93) |
et j'arrive pas à trouver ou est le bug car tout me semble bien
quelqu'un à une solution merci d'avance
cordialement