IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

raffraichissement des onglets


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut raffraichissement des onglets
    Dan smon application j'ai des onglet, et à chaque fois que je souhaite changer d'onglet il faut que je les raffraichisse.

    Voici ma fenetre qui bug toujours avec les listes déroulantes, la liste est vide une fois sur 2 et j'ai un grand nombre de lignes d'erreurs comme auparavant

    Voici ces erreurs :
    Exception in thread "AWT-EventQueue-0"

    java.lang.NullPointerException
    at PanneauSousCompetence.itemStateChanged(PanneauSousCompetence.java:135)
    at javax.swing.JComboBox.fireItemStateChanged(Unknown Source)
    at javax.swing.JComboBox.selectedItemChanged(Unknown Source)
    at javax.swing.JComboBox.contentsChanged(Unknown Source)
    at javax.swing.JComboBox.intervalRemoved(Unknown Source)
    at javax.swing.AbstractListModel.fireIntervalRemoved(Unknown Source)
    at javax.swing.DefaultComboBoxModel.removeAllElements(Unknown Source)
    at javax.swing.JComboBox.removeAllItems(Unknown Source)
    at PanneauSousCompetence.raffraichit(PanneauSousCompetence.java:49)
    at MonCadre.stateChanged(Projet.java:117)
    at javax.swing.JTabbedPane.fireStateChanged(Unknown Source)
    at javax.swing.JTabbedPane$ModelListener.stateChanged(Unknown Source)
    at javax.swing.DefaultSingleSelectionModel.fireStateChanged(Unknown Source)
    at javax.swing.DefaultSingleSelectionModel.setSelectedIndex(Unknown Source)
    at javax.swing.JTabbedPane.setSelectedIndexImpl(Unknown Source)
    at javax.swing.JTabbedPane.setSelectedIndex(Unknown Source)
    at javax.swing.plaf.basic.BasicTabbedPaneUI$Handler.mousePressed(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.pumpOneEventForHierarchy(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)
    la ligne 135 est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     String groupeSelect = ((ContenuCBX) groupe.getSelectedItem()).getCode();
    et la ligne 49 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     groupe.removeAllItems();
    j'ai essayer de faire comme auparavant! j'ai mis en commentaire car cela ne marchait pas j'avais toujours cette erreur

    Voici ce qui se trouve dans la classe de l'onglet, j'appele juste la fonctionne raffraichissement lorsque je clique sur celui ci :

    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
    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
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
     
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.table.DefaultTableModel;
     
     
    //classe Panneau
    public class PanneauSousCompetence extends JPanel implements ActionListener, DocumentListener, ItemListener, ListSelectionListener, MouseListener 
    {
        //déclaration de tous les composants utiliser pour ce panneau
        Etiquette etiquetteGroupe = new Etiquette("Groupe de compétence : ");
        Etiquette etiquetteSous = new Etiquette("Libellé :");
        Liste groupe = new Liste();
        Entree entreeSousCompetence =  new Entree("",15);
        Bouton ajoutModif = new Bouton("Ajouter","Ajouter une sous-compétence",false,Couleur.bajouter);
        Bouton suppr = new Bouton("Supprimer","Supprimer une sous-compétence",false,Couleur.bsuppr);
        Table tSousCompetence = new Table();
        Panneau pEdit = new Panneau("Edition des sous compétences");
        Panneau pTab = new Panneau("Liste des sous compétences");
        private String rempliGroupe()
        {
            String sql="SELECT * FROM GRPCOMPETENCE ORDER BY lib_grpcompetence";
            ConnectionBD.remplirListeObjet(groupe, ConnectionBD.requeteAvecResultat(sql),1);
            return ((ContenuCBX)groupe.getSelectedItem()).getCode();
            /*if ( groupe.getModel().getSize() > 0 ) // Si la requête a donné au moins 1 résultat
               {
                  groupe.setSelectedIndex(0) ;   // Sélection du 1er élément de la liste
                    return ((ContenuCBX)groupe.getSelectedItem()).getCode();
               } else {
                  return "" ; // On renvoie la chaine vide si la requête n'a rien renvoyé
            }*/
        }
        private void chargeTable(String groupe)
        {
            //requête sql
            String sql="SELECT num_competence, lib_competence FROM COMPETENCE WHERE num_grpcompetence = '"+groupe+"' ORDER BY lib_competence";
            //remplissage de la JTable
            ConnectionBD.remplirTable(tSousCompetence, ConnectionBD.requeteAvecResultat(sql), 2);
        }
        private void BtnAjouter()
        {
            ajoutModif.setText("Ajouter");
            ajoutModif.setToolTipText("Ajouter une sous-compétence");
            ajoutModif.setCouleur(Couleur.bajouter);
        }
        public void raffraichit()
        {
            groupe.removeAllItems();
            String groupeSelect = rempliGroupe();
            tSousCompetence.vider();
            chargeTable(groupeSelect);
        }
        private void BtnModifier()
        {
            ajoutModif.setText("Modifier");
            ajoutModif.setToolTipText("Modifier une sous-compétence");
            ajoutModif.setCouleur(Couleur.bmodif);
        }
        private Panneau PanneauEditSous()
        {
            //remplissage de la liste des groupes de compétences
            String groupeSelect = rempliGroupe();
            GridBagConstraints c = new GridBagConstraints();
            c.anchor = GridBagConstraints.LINE_START;
            c.insets = new Insets(5, 5, 5, 5);
            Outils.buildConstraints(c,0,0,1,2,0,0);
            pEdit.add(etiquetteGroupe, c);
            Outils.buildConstraints(c,1,0,2,2,0,0);
            pEdit.add(groupe, c);
            Outils.buildConstraints(c,0,3,1,2,0,0);
            pEdit.add(etiquetteSous, c);
            Outils.buildConstraints(c,1,3,2,2,0,0);
            pEdit.add(entreeSousCompetence, c);
            Outils.buildConstraints(c,5,3,2,2,0,0);
            c.insets = new Insets(5, 50, 5, 5);
            pEdit.add(ajoutModif, c);
            return pEdit;
        }
        public Panneau PanneauTabSous()
        {
            //remplissage de la table
            tSousCompetence.ajouteColonne("Numéro");
            tSousCompetence.ajouteColonne("Libellé");
            tSousCompetence.vider();
            String groupeSelect = ((ContenuCBX)groupe.getSelectedItem()).getCode();
            chargeTable(groupeSelect);
            JScrollPane titreLibelle;
            titreLibelle = new JScrollPane(tSousCompetence);
            titreLibelle.setPreferredSize(new Dimension(500,300));    
            //création des contraintes
            GridBagConstraints c = new GridBagConstraints();
            c.anchor = GridBagConstraints.NORTH;
            c.insets = new Insets(25, 5, 5, 5);
            Outils.buildConstraints(c,0,0,1,1,0,0);
            pTab.add(titreLibelle,c);
            c.insets = new Insets(45, 5, 5, 5);
            Outils.buildConstraints(c,0,1,1,1,1,1);
            pTab.add(suppr,c);
            return pTab;
        }
        public PanneauSousCompetence()
        {
            //couleur de fond
            setBackground(Couleur.fond);
            //création des 2 panneaux
            Panneau pEdit = PanneauEditSous();
            Panneau pTab = PanneauTabSous();
            //placement d'écouteur sur la fenêtre
            addMouseListener(this);
            //placement d'écouteurs sur les boutons
            ajoutModif.addActionListener(this);
            suppr.addActionListener(this);
            //placement d'écouteurs sur les textes en entrée
            entreeSousCompetence.getDocument().addDocumentListener(this);
            //placement d'un écouteur sur la liste année
            groupe.addItemListener(this);
            //placement d'un écouteur sur le tableau
            tSousCompetence.getSelectionModel().addListSelectionListener(this);
            //utilisation d'un GridBagLayout, positionnement des composant
            setLayout(new GridBagLayout());
            GridBagConstraints c = new GridBagConstraints();
            c.fill = GridBagConstraints.BOTH;
            Outils.buildConstraints(c,0,0,1,1,0,1);
            c.insets = new Insets(5, 5, 5, 5);
            this.add(pEdit,c);
            pEdit.setPreferredSize(new Dimension(0,100));
            Outils.buildConstraints(c,0,1,1,1,1,1);
            this.add(pTab,c);
            pTab.setPreferredSize(new Dimension(0,400));
        }
        public void itemStateChanged(ItemEvent e) 
        {    
            tSousCompetence.vider();
            String groupeSelect = ((ContenuCBX)groupe.getSelectedItem()).getCode();
            chargeTable(groupeSelect);
        }
        public void valueChanged(ListSelectionEvent e)
        {
            int num=this.tSousCompetence.getSelectedRow();
            if (num!=-1)
            {
                String sousCompetence = (String)tSousCompetence.getValueAt(num, 1);
                entreeSousCompetence.setText(sousCompetence);
                BtnModifier();
            }
            this.suppr.setEnabled(num!=-1);
            this.ajoutModif.setEnabled(num!=-1);
        }
        public void insertUpdate(DocumentEvent e) 
        {
            String sousCompetence=this.entreeSousCompetence.getText().trim();
            this.ajoutModif .setEnabled(sousCompetence.length()!=0);
        }
        public void removeUpdate(DocumentEvent e) 
        {
           this.insertUpdate(e);
        }
        public void changedUpdate(DocumentEvent e) 
        {
           this.insertUpdate(e);
        }
        public void mouseClicked(MouseEvent e) 
        {
            tSousCompetence.clearSelection();
            entreeSousCompetence.setText("");
            BtnAjouter();
        }
        public void mousePressed(MouseEvent e) {}
        //Invoked when a mouse button has been pressed on a component.
     
        public void mouseReleased(MouseEvent e) {}
        //Invoked when a mouse button has been released on a component.
     
        public void mouseEntered(MouseEvent e) {}
        //Invoked when the mouse enters a component.
     
        public void mouseExited(MouseEvent e) {}
        //Invoked when the mouse exits a component.
     
        public void actionPerformed (ActionEvent e)
        {
            String s=e.getActionCommand();
            if (s.equals("Ajouter")) 
            {
                String sousCompetence=entreeSousCompetence.getText().trim();
                String groupeSelect = ((ContenuCBX)groupe.getSelectedItem()).getCode();
                entreeSousCompetence.setText("");
                tSousCompetence.vider();
                String sql="INSERT INTO COMPETENCE (num_grpcompetence,lib_competence) VALUES ('"+groupeSelect+"','"+sousCompetence+"');";
                ConnectionBD.requeteSansResultat(sql);
                chargeTable(groupeSelect);        
            }
            else if (s.equals("Modifier")) 
            {
                int num=tSousCompetence.getSelectedRow();
                String sousCompetence=entreeSousCompetence.getText().trim();
                String codeTab = (String)tSousCompetence.getValueAt(num, 0);
                String groupeSelect = ((ContenuCBX)groupe.getSelectedItem()).getCode();
                entreeSousCompetence.setText("");
                tSousCompetence.vider();
                String sql="UPDATE COMPETENCE SET lib_competence = '"+sousCompetence+"' WHERE num_competence = '"+codeTab+"';";
                ConnectionBD.requeteSansResultat(sql);
                chargeTable(groupeSelect);
                BtnAjouter();
            }
            else if (s.equals("Supprimer")) 
            {
                int num=tSousCompetence.getSelectedRow();
                String codeTab = (String)tSousCompetence.getValueAt(num, 0);
                entreeSousCompetence.setText("");
                ((DefaultTableModel)tSousCompetence.getModel()).removeRow(num);
                String sql="DELETE FROM COMPETENCE WHERE num_competence='"+codeTab+"';";
                ConnectionBD.requeteSansResultat(sql);
                BtnAjouter();
            }
        }
    }
    Merci de votre aide

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 65
    Par défaut
    Si tu as une NullPointerException c'est simplement que groupe.getSelectedItem() return null, c'est à dire qu'il n'y a aucun élément sélectionné (liste vide quoi).

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    ce qui est vraiment bizarre c'est que exactement une fois sur 2 ma liste fonctionne?
    donc je ne vois pas comment corriger cette erreur

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 65
    Par défaut
    Ben si ça plante vraiment une fois sur 2, tu regardes ce qu'il se passe réellement en debug.

  5. #5
    lvr
    lvr est déconnecté
    Membre éclairé Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    919
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 919
    Par défaut
    Est-ce que tu as pensé à supprimer les listeners avant de faire ton refresh et de les remettre après ? Cela évite de les déclencher alors qu'il ne le faut pas.

Discussions similaires

  1. Rendre invisibles des onglets de formulaires
    Par cabort josé dans le forum IHM
    Réponses: 4
    Dernier message: 16/11/2004, 17h48
  2. [C#] Cacher des onglet(s)
    Par Jfrancois57 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 22/04/2004, 23h17
  3. [VB.NET] Couleurs des onglets d'un TabControl
    Par ineznia dans le forum Windows Forms
    Réponses: 6
    Dernier message: 09/04/2004, 13h18
  4. Changer dynamiquement la position des onglets
    Par ginnovy dans le forum C++Builder
    Réponses: 2
    Dernier message: 11/09/2002, 18h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo