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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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