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

avec Java Discussion :

Erreur InvocationTargetException


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 53
    Points : 35
    Points
    35
    Par défaut Erreur InvocationTargetException
    Bonjour,
    Voila j'ai une Jframe ou j'ai un jTable que j'alimente avec un defaulttablemodel.Seulement quand il s'agit d'ajout ca marche, mais quand je selectionne une ligne et je la supprime j'ai l'erreur suivante.
    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
    Exception in thread "AWT-EventQueue-0" java.lang.Error: java.lang.reflect.InvocationTargetException
            at org.jdesktop.application.ApplicationAction.actionFailed(ApplicationAction.java:859)
            at org.jdesktop.application.ApplicationAction.noProxyActionPerformed(ApplicationAction.java:665)
            at org.jdesktop.application.ApplicationAction.actionPerformed(ApplicationAction.java:698)
            at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
            at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
            at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
            at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
            at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
            at java.awt.Component.processMouseEvent(Component.java:6289)
            at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
            at java.awt.Component.processEvent(Component.java:6054)
            at java.awt.Container.processEvent(Container.java:2041)
            at java.awt.Component.dispatchEventImpl(Component.java:4652)
            at java.awt.Container.dispatchEventImpl(Container.java:2099)
            at java.awt.Component.dispatchEvent(Component.java:4482)
            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
            at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
            at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
            at java.awt.Container.dispatchEventImpl(Container.java:2085)
            at java.awt.Window.dispatchEventImpl(Window.java:2478)
            at java.awt.Component.dispatchEvent(Component.java:4482)
            at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
            at java.awt.EventQueue.access$000(EventQueue.java:85)
            at java.awt.EventQueue$1.run(EventQueue.java:603)
            at java.awt.EventQueue$1.run(EventQueue.java:601)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
            at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
            at java.awt.EventQueue$2.run(EventQueue.java:617)
            at java.awt.EventQueue$2.run(EventQueue.java:615)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
            at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
            at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    Caused by: java.lang.reflect.InvocationTargetException
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.jdesktop.application.ApplicationAction.noProxyActionPerformed(ApplicationAction.java:662)
            ... 37 more
    Caused by: java.lang.ArrayIndexOutOfBoundsException: -1
            at java.util.Vector.elementAt(Vector.java:430)
            at javax.swing.table.DefaultTableModel.getValueAt(DefaultTableModel.java:632)
            at javax.swing.JTable.getValueAt(JTable.java:2686)
            at ui.FenAnnuaire$1.valueChanged(FenAnnuaire.java:74)
            at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:167)
            at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:147)
            at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:194)
            at javax.swing.DefaultListSelectionModel.removeIndexInterval(DefaultListSelectionModel.java:660)
            at javax.swing.JTable.tableRowsDeleted(JTable.java:4497)
            at javax.swing.JTable.tableChanged(JTable.java:4400)
            at javax.swing.table.AbstractTableModel.fireTableChanged(AbstractTableModel.java:280)
            at javax.swing.table.AbstractTableModel.fireTableRowsDeleted(AbstractTableModel.java:245)
            at javax.swing.table.DefaultTableModel.setNumRows(DefaultTableModel.java:304)
            at javax.swing.table.DefaultTableModel.setRowCount(DefaultTableModel.java:322)
            at ui.FenAnnuaire.doit(FenAnnuaire.java:337)
            at ui.FenAnnuaire.suppression(FenAnnuaire.java:538)
            ... 42 more
    le code de ma fenetre

    voila le code associé au boutton supprimer
    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
    public void suppression() {
     
            System.out.println("Coucou");
            Connection dbConnect = JDBCDriverInformation.getMSSJDBCConnection("BDD", "CLIENT", "sa", "sql");
            String SQL = "delete from annuaires where ANNUAIRE_ID=" + idASupprimer;
            try {
                java.sql.Statement dbStatement = dbConnect.createStatement();
     
                int delete = dbStatement.executeUpdate(SQL);
                dbStatement.close();
                dbConnect.close();
                if (delete == 1) {
     
                    JOptionPane.showMessageDialog(this, "Suppression aves succès", "Succès", JOptionPane.ERROR_MESSAGE);
     
     
                } else {
                    JOptionPane.showMessageDialog(this, "Erreur de suppression", "Erreur de Suppression", JOptionPane.ERROR_MESSAGE);
                }
            } catch (SQLException e) {
                JOptionPane.showMessageDialog(this, "Erreur de suppression", "Erreur de Suppression", JOptionPane.ERROR_MESSAGE);
            }
            try {
     
                doit();
            } catch (SQLException ex) {
                Logger.getLogger(FenAnnuaire.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    voila le code que j'appele si la suppresion s'est bien effectué

    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
    public void doit() throws SQLException {
            model.setRowCount(0);
            Connection dbConnect = null;
            dbConnect = JDBCDriverInformation.getMSSJDBCConnection("BDD", "CLIENT", "sa", "sql");
            System.out.println("jes suis dans Selection Cient : " + FenConnexionBase.isConnected);
            String SQL = "SELECT * FROM ANNUAIRES";
            java.sql.Statement dbStatement = dbConnect.createStatement();
            ResultSet res = dbStatement.executeQuery(SQL);
           while (res.next()) {
     
                model.addRow(new Object[]{
                            res.getInt(1),//
                            res.getString("LIBELLE_ANNUAIRE"),//
                            res.getDate("DATE_DEBUT_VALIDITE").toString(),
                            res.getDate("DATE_FIN_VALIDITE").toString(),});
            }
            res.close();
            dbConnect.close();
            jTable3.setModel(model);
     
        }
    le code du listener
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            jTable3.getSelectionModel().addListSelectionListener(
                    new ListSelectionListener() {
     
                        public void valueChanged(ListSelectionEvent e) {
                            // firePropertyChange("recordSelected", !isRecordSelected(), isRecordSelected());
                            idASupprimer = jTable3.getValueAt(jTable3.getSelectedRow(), 0).toString();
                        }
                    });

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2009
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 130
    Points : 276
    Points
    276
    Par défaut
    L'erreur est à cette ligne la :

    idASupprimer = jTable3.getValueAt(jTable3.getSelectedRow(), 0).toString();

    l'instruction jTable3.getSelectedRow() renvoi -1 (aucune ligne sélectionnée).

    Du coup l'instruction jTable3.getValueAt(-1,0) plante car tu est hors des limites du tableau. cela te génère une ArrayOutOfBoundsException, qui génère ensuite toute la stack que tu as fourni.
    MigouW

    La seule bataille perdue d'avance est celle que l'on refuse de livrer.


    Pensez au tag
    Ma réponse vous a été utile, votez plus 1 sur le message.
    Ma réponse est hors sujet, votez moins 1 sur le message.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 53
    Points : 35
    Points
    35
    Par défaut
    Merci pour la réponse, et comment je peux corrigé le problème sachant que je sélectionne une ligne et je veux donc récupérer la valeur qui y existe ?
    Edit :J'ai vérifié la valeur est enfaite elle est correcte, car elle renvoi le numéro de la ligne donc ce n'est pas cela le problème je pense

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2009
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 130
    Points : 276
    Points
    276
    Par défaut
    ligne 48 de ta stack :

    Caused by: java.lang.ArrayIndexOutOfBoundsException: -1
    ligne 51 -52 de ta stack :
    at javax.swing.JTable.getValueAt(JTable.java:2686)
    at ui.FenAnnuaire$1.valueChanged(FenAnnuaire.java:74)
    piour etre sur de ne pas avoir la ArrayIndexOutOfBoundsException je ferai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    jTable3.getSelectionModel().addListSelectionListener(
                    new ListSelectionListener() {
     
                        public void valueChanged(ListSelectionEvent e) {
                            // firePropertyChange("recordSelected", !isRecordSelected(), isRecordSelected());
                            int idLigne = jTable3.getSelectedRow();
                            if(idLigne>-1 ){
                                idASupprimer = jTable3.getValueAt(idLigne, 0).toString();
                            }
                        }
                    });
    MigouW

    La seule bataille perdue d'avance est celle que l'on refuse de livrer.


    Pensez au tag
    Ma réponse vous a été utile, votez plus 1 sur le message.
    Ma réponse est hors sujet, votez moins 1 sur le message.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 53
    Points : 35
    Points
    35
    Par défaut
    Merci pour ton aide , ça a résoulu le problème

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. erreur InvocationTargetException dans l'appel d'un Service Web
    Par abdou-wt dans le forum Services Web
    Réponses: 0
    Dernier message: 15/06/2012, 12h27
  2. [Erreur Netbeans] InvocationTargetException
    Par Virtuosity dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 04/01/2009, 14h54
  3. erreur avec java.lang.reflect.InvocationTargetException
    Par PeterEMF dans le forum Services Web
    Réponses: 0
    Dernier message: 24/10/2008, 12h50
  4. message d'erreur :java.lang.reflect.InvocationTargetException
    Par fripette dans le forum Tomcat et TomEE
    Réponses: 18
    Dernier message: 17/03/2008, 21h44
  5. Erreur InvocationTargetException avec GMF
    Par triton4 dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 01/02/2008, 13h12

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