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 :

NullPointerException


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2015
    Messages : 21
    Points : 15
    Points
    15
    Par défaut NullPointerException
    Bonsoir,

    J'ai ce message d'erreur :

    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at application.login.jButton2ActionPerformed(login.java:83)
    at application.login.access$100(login.java:13)
    at application.login$2.actionPerformed(login.java:73)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6516)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
    at java.awt.Component.processEvent(Component.java:6281)
    at java.awt.Container.processEvent(Container.java:2229)
    at java.awt.Component.dispatchEventImpl(Component.java:4872)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Component.dispatchEvent(Component.java:4698)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
    at java.awt.Container.dispatchEventImpl(Container.java:2273)
    at java.awt.Window.dispatchEventImpl(Window.java:2719)
    at java.awt.Component.dispatchEvent(Component.java:4698)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:740)
    at java.awt.EventQueue.access$300(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:699)
    at java.awt.EventQueue$3.run(EventQueue.java:697)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.awt.EventQueue$4.run(EventQueue.java:713)
    at java.awt.EventQueue$4.run(EventQueue.java:711)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:710)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) 
    

    Voici mon code :


    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
    package application;
     
     
     
     
    import java.sql.*;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.swing.JOptionPane;
     
     
    public class login extends javax.swing.JFrame {
     
    ResultSet rs ;
    DBB db ; 
    String username1,password1,hak;
     
    public login() {
     
     
    initComponents();
    }
     
     
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code"> 
    private void initComponents() {
     
    jLabel1 = new javax.swing.JLabel();
    jLabel2 = new javax.swing.JLabel();
    jLabel3 = new javax.swing.JLabel();
    TXT2 = new javax.swing.JTextField();
    TXT1 = new javax.swing.JTextField();
    jButton2 = new javax.swing.JButton();
     
    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    getContentPane().setLayout(null);
     
    jLabel1.setFont(new java.awt.Font("Sylfaen", 1, 36)); // NOI18N
    jLabel1.setForeground(new java.awt.Color(102, 102, 255));
    jLabel1.setText("Login");
    getContentPane().add(jLabel1);
    jLabel1.setBounds(147, 37, 179, 48);
     
    jLabel2.setFont(new java.awt.Font("Tahoma", 3, 18)); // NOI18N
    jLabel2.setText("username");
    getContentPane().add(jLabel2);
    jLabel2.setBounds(32, 98, 103, 22);
     
    jLabel3.setFont(new java.awt.Font("Tahoma", 3, 18)); // NOI18N
    jLabel3.setText("Password ");
    getContentPane().add(jLabel3);
    jLabel3.setBounds(32, 155, 103, 37);
     
    TXT2.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
    TXT2.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    TXT2ActionPerformed(evt);
    }
    });
    getContentPane().add(TXT2);
    TXT2.setBounds(170, 160, 140, 29);
     
    TXT1.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
    getContentPane().add(TXT1);
    TXT1.setBounds(172, 96, 140, 29);
     
    jButton2.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
    jButton2.setText("Login");
    jButton2.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    jButton2ActionPerformed(evt);
    }
    });
    getContentPane().add(jButton2);
    jButton2.setBounds(60, 230, 100, 31);
     
    pack();
    }// </editor-fold> 
     
    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { 
    rs = db.QselectAll("Untitled","username='"+TXT1.getText()+"'and password='"+TXT2.getText()+"'");
    try{
    while(rs.next()){
    username1 = rs.getString("username");
    password1 = rs.getString("password");
    hak = rs.getString("type");
    }}catch(SQLException ex){
    Logger.getLogger(login.class.getName()).log(Level.SEVERE,null ,ex);
     
    }
    if(username1 == null && password1 == null){
     
    JOptionPane.showMessageDialog(this,"le non utilisateur ou le mots pass est inncorrect");
     
    }else{
    if(hak.equals("admin")){
    principal h =new principal();
    h.setVisible(true);
    this.dispose();
    }else{
    principal2 k = new principal2();
    k.setVisible(true);
    this.dispose();
     
     
    }
     
    }
     
     
     
     
     
    } 
     
    private void TXT2ActionPerformed(java.awt.event.ActionEvent evt) { 
    // TODO add your handling code here:
    } 
     
    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
    /* Set the Nimbus look and feel */
    //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
    /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
    * For details see <a href="http://download.oracle.com/javase/tu...feel/plaf.html" target="_blank">http://download.oracle.com/javase/tu...feel/plaf.html</a> 
    */
    try {
    for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
    if ("Nimbus".equals(info.getName())) {
    javax.swing.UIManager.setLookAndFeel(info.getClassName());
    break;
    }
    }
    } catch (ClassNotFoundException ex) {
    java.util.logging.Logger.getLogger(login.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (InstantiationException ex) {
    java.util.logging.Logger.getLogger(login.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (IllegalAccessException ex) {
    java.util.logging.Logger.getLogger(login.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (javax.swing.UnsupportedLookAndFeelException ex) {
    java.util.logging.Logger.getLogger(login.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    }
    //</editor-fold>
    //</editor-fold>
    //</editor-fold>
    //</editor-fold>
     
    /* Create and display the form */
    java.awt.EventQueue.invokeLater(new Runnable() {
    public void run() {
    new login().setVisible(true);
    }
    });
    }
     
    // Variables declaration - do not modify 
    private javax.swing.JTextField TXT1;
    private javax.swing.JTextField TXT2;
    private javax.swing.JButton jButton2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    // End of variables declaration 
     
    private static class Principal {
     
    public Principal() {
    }
     
    private void setVisible(boolean b) {
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
    }
    }

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Le message d'erreur "application.login.jButton2ActionPerformed(login.java:83)" dit clairement que dans le fichier login.java (classe login), dans la méthode jButton2ActionPerformed, à la ligne 83, tu invoques une méthode sur une variable qui pointe sur null : une variable donc non initialisée.

    A priori, je dirais qu'il s'agit de la variable db. Mais es-tu sûr que la classe DBB n'est pas plutôt une classe avec des méthodes statiques, qu'il faudrait donc appeler plutôt comme ça : rs = DBB.QselectAll("Untitled","username='"+TXT1.getText()+"'and password='"+TXT2.getText()+"'"); (même s'il est douteux de devoir passer une clause where explicite, ce qui semble signifier qu'on n'utilise pas de PreparedStatement).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2015
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    Merci Joel.drigo
    ma class DBB
    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
     
    /*
     * To change this license header, choose License Headers in Project Properties.
     * To change this template file, choose Tools | Templates
     * and open the template in the editor.
     */
    package application;
     
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
     
    /**
     * @author ALI
     */
    public class DBB
    {
     
    	Connection	cn;
    	Statement	statement;
    	String		SQL;
     
    	public DBB()
    	{
     
    		conexion con = new conexion();
    		cn = con.conectar();
    	}
     
    	public ResultSet executionQ(String sql)
    	{
    		ResultSet resultSet = null;
    		try
    		{
    			statement = cn.createStatement();
    			resultSet = statement.executeQuery(sql);
    			System.out.println(sql);
    		} catch (SQLException ex)
    		{
    			System.err.println(ex);
    		}
    		return resultSet;
    	}
     
    	public String executionupdate(String sql)
    	{
     
    		String result = "";
    		try
    		{
    			statement = cn.createStatement();
    			statement.executeQuery(sql);
    			result = sql;
    		} catch (SQLException ex)
    		{
    			result = ex.toString();
    		}
     
    		return result;
    	}
     
    	public ResultSet QselectAll(String nomTable)
    	{
    		SQL = "SELECT *FROM " + nomTable;
     
    		return this.executionQ(SQL);
     
    	}
     
    	public ResultSet QselectAll(String nomTable, String etat)
    	{
    		SQL = "SELECT *FROM " + nomTable + "WHERE" + etat;
    		return this.executionQ(SQL);
     
    	}
     
    	public ResultSet QSelect(String[] nomColonne, String nomTable)
    	{
    		int i;
    		SQL = "SELECT";
    		for (i = 0; i < nomColonne.length - 1; i++)
    		{
     
    			SQL += nomColonne[i];
    			if (i < nomColonne.length - 1)
    			{
    				SQL += ",";
    				;
    			}
     
    		}
    		SQL += "FROM" + nomTable;
    		return this.executionQ(SQL);
    	}
     
    	public String QInsert(String nomTable, String[] contenuTableau)
    	{
    		int i;
    		SQL = "INSERT INTO" + nomTable + "VALUES(";
    		for (i = 0; i < contenuTableau.length - 1; i++)
    		{
    			SQL += "'" + contenuTableau[i] + "'";
    			if (i < contenuTableau.length - 1)
    			{
    				SQL += ",";
     
    			}
     
    		}
    		SQL += ")";
    		return this.executionupdate(SQL);
    	}
     
    	/*
    	 * public String QInsert(String nomTable,String[] contenuTableau){ int i;
    	 * SQL ="INSERT INTO"+nomTable+"VALUES("; for(i=0;i<contenuTableau.length
    	 * -1;i++){ SQL+= "'"+contenuTableau[i]+"'"; if (i<contenuTableau.length
    	 * -1){ SQL+=","; } } SQL+=")"; return this.executionupdate(SQL); }
    	 */
     
    	public ResultSet Qupdate(String nomTable, String[] nomColonne, String[] contenuTableau, String etat)
    	{
    		int i;
    		SQL = "UPDATE" + nomTable + "SET";
    		for (i = 0; i < nomColonne.length - 1; i++)
    		{
     
    			SQL += nomColonne[i] + "=" + contenuTableau[i] + "'";
    			if (i < nomColonne.length - 1)
    			{
    				SQL += ",";
    				;
    			}
     
    		}
    		SQL += "WHERE" + etat;
    		return this.executionQ(SQL);
    	}
     
    	public ResultSet Qdelete(String nomTable, String etat)
    	{
    		SQL = "DELETE *FROM " + nomTable + "WHERE" + etat;
    		return this.executionQ(SQL);
     
    	}
    }

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Donc les méthodes ne sont pas statiques, donc il faut juste instancier la classe DBB() par new DBB() et l'affecter à la variable. La question est de déterminer où le faire. Ce n'est jamais une très bonne idée de le faire dans une fenêtre graphique, parce que la connexion est un objet qu'on peut utiliser dans toute l'application, et on ne va pas créer des connexion à tout bout de champ (parce qu'une connexion coûte en ressource), surtout qu'il faudra bien penser à les libérer quand on n'en a plus besoin (ce qui n'est pas fait actuellement). Si le mieux serait de faire un singleton de l'instance de DBB, tu peux également l'initialiser dans l'une des méthodes de lancement de l'application (à commencer par main()) et la passer en paramètre à ta fenêtre de login.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2015
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    tu peux m'aider dans le code je suis débutante dans java merci

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 981
    Points
    7 981
    Par défaut
    Joël a déjà bien répondu : Mais la question est "T'aider a quoi ?"
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2015
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    de corrige le problème dans le code java
    merci a vous

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

Discussions similaires

  1. [JDBC][STATEMENT] NullPointerException
    Par syvid dans le forum JDBC
    Réponses: 2
    Dernier message: 23/03/2005, 00h29
  2. [Débutant]NullPointerException
    Par Crazyblinkgirl dans le forum Langage
    Réponses: 4
    Dernier message: 18/08/2004, 13h58
  3. [Exception]Double buffering & NullPointerException
    Par Seiya dans le forum API standards et tierces
    Réponses: 25
    Dernier message: 09/07/2004, 18h41
  4. Heritage et NullPointerException
    Par Assiobal dans le forum Langage
    Réponses: 6
    Dernier message: 18/06/2004, 16h35
  5. JPanel & getGraphics() : NullPointerException
    Par dingoth dans le forum Composants
    Réponses: 7
    Dernier message: 21/05/2004, 15h56

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