problème d’exécution du code de mon interface windows avec java netbean
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

problème d’exécution du code de mon interface windows avec java netbean



  1. #1
    saniadaff

    problème d’exécution du code de mon interface windows avec java netbean


    ------

    Bonsoir tout le monde;

    je suis entrain de m'appliquer en interface Windows avec java;

    veuillez me donner un coup de main; je vous signal que le code compile avec ce message:

    run:

    BUILD SUCCESSFUL (total time: 1 second)

    mais en ajoutant les informations dans la base de donnée rien ne se passe et en bas les ligne rouge
    voici la fenêtre que je veux réaliser et pour le moment je suis sur le bouton ajouter :
    Nom : Sans titre.png
Affichages : 127
Taille : 28,9 Ko

    voici le code de la source:

    Code:
    import com.mysql.jdbc.Connection;
    import com.mysql.jdbc.PreparedStatement;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import javax.swing.JOptionPane;
    import java.sql.*;
    import javax.swing.table.DefaultTableModel;
    
    
    /**
     *
     * @author DAFFE
     */
    public class Menu extends javax.swing.JFrame {
             Connection con;
    	PreparedStatement pst;
    	ResultSet rs;
        /**
         * Creates new form Menu
         */
        public Menu() {
            initComponents();
            connect();
            chagerCombobox();
            Table();
        }
            public void connect(){
    		// debut de try
    		try{
    		Class.forName("com.msql.jdbc.Driver");
    		con= (Connection) DriverManager.getConnection("jdbc:mysql://localhost/gestionhotel","root","");
    		JOptionPane.showMessageDialog(null,"Connection reusie");
    		} catch (Exception e) {
                     e.printStackTrace();
    		}		
    		// fin de try
    		
    		// fin de initialize()
    		}
            public void Table(){
    	 String [] client={"ID","NOM","TELEPHONE","ADRESSE"};
    	String [] afficher=new String[5] ;
            DefaultTableModel model = new DefaultTableModel(null, client);
    	try{
    	connect();
    	Statement st=con.createStatement();
    	rs=st.executeQuery("select * from client");
    	while(rs.next()){
    	afficher[0]=rs.getString("id");
    	afficher[1]=rs.getString("nom");
    	afficher[2]=rs.getString("tel");
    	afficher[3]=rs.getString("adresse");
    	model.addRow(afficher);
    	}
    	jTable1.setModel(model);
    	con.close();
    	} catch (Exception e){
    	e.printStackTrace();
    	}
    }
    public void chagerCombobox(){  
        
     try{
            connect();
            Statement st=con.createStatement();
    	rs=st.executeQuery("select adresse from client");
    	while(rs.next()){
    
           //Pour affecter une valeur de base de données à un Combobox 
           txtadresse.addItem(rs.getString("adresse"));
         } 
          con.close();  
         } catch (Exception e){
    	e.printStackTrace();
    	}
          
         }       
            
        /**
         * This method is called from within the constructor to initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is always
         * regenerated by the Form Editor.
         */
        @SuppressWarnings("unchecked")
        // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
        private void initComponents() {
    
            jTabbedPane1 = new javax.swing.JTabbedPane();
            jPanel1 = new javax.swing.JPanel();
            jPanel3 = new javax.swing.JPanel();
            jLabel2 = new javax.swing.JLabel();
            jLabel3 = new javax.swing.JLabel();
            jLabel4 = new javax.swing.JLabel();
            txtadresse = new javax.swing.JComboBox<>();
            jButton1 = new javax.swing.JButton();
            jLabel5 = new javax.swing.JLabel();
            txtid = new javax.swing.JTextField();
            txtnom = new javax.swing.JTextField();
            txttel = new javax.swing.JTextField();
            jButton2 = new javax.swing.JButton();
            jLabel1 = new javax.swing.JLabel();
            jScrollPane1 = new javax.swing.JScrollPane();
            jTable1 = new javax.swing.JTable();
            jPanel2 = new javax.swing.JPanel();
    
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    
            jTabbedPane1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
            jTabbedPane1.setForeground(new java.awt.Color(51, 51, 255));
            jTabbedPane1.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
            jTabbedPane1.setPreferredSize(new java.awt.Dimension(200, 300));
    
            jPanel3.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));       
                
                                  
        }// </editor-fold>                        
    
        
        private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
            // TODO add your handling code here:
            
            try{
    	connect();
    	pst=(PreparedStatement)con.prepareStatement("INSERT INTO client(id, nom, tel, adresse)values(?,?,?,?)");
    	pst.setString(1,txtid.getText());
    	pst.setString(2,txtnom.getText());
    	pst.setString(3,txttel.getText());
    	pst.setString(4,txtadresse.getSelectedItem().toString());
    	pst.executeUpdate();
    	con.close();
    	JOptionPane.showMessageDialog(null, "Client ajouter");
    	Table();
            chagerCombobox();
    
    	} catch (Exception e){
    	e.printStackTrace();
    	}
        }                                        
    
        private void txtadresseActionPerformed(java.awt.event.ActionEvent evt) {                                           
            // TODO add your handling code here:
        }                                          
    
        private void jTable1MouseReleased(java.awt.event.MouseEvent evt) {                                      
            // TODO add your handling code here:       
           
        int i=jTable1.getSelectedRow();
        DefaultTableModel model=(DefaultTableModel) jTable1.getModel();
        txtid.setText(model.getValueAt(i,0).toString());
        txtnom.setText(model.getValueAt(i,1).toString());
        txttel.setText(model.getValueAt(i,2).toString());
        txtadresse.setSelectedItem(model.getValueAt(i,3).toString());
        }                                     
    
        private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
            // TODO add your handling code here:
            try{
       connect();
       pst=(PreparedStatement)con.prepareStatement("UPDATE client SET name=?, tel=?, adresse=? WHERE id=?");
       pst.setString(4,txtid.getText());
       pst.setString(1,txtnom.getText());
       pst.setString(2,txttel.getText());
       pst.setString(3,txtadresse.getSelectedItem().toString());
       pst.executeUpdate();
       con.close();
       JOptionPane.showMessageDialog(null, "Client modifier");
       Table();
       chagerCombobox();
       } catch(Exception e){
       e.printStackTrace();
       }
    
        }                                        
    
        /**
         * @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 http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
             */
            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(Menu.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            } catch (InstantiationException ex) {
                java.util.logging.Logger.getLogger(Menu.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            } catch (IllegalAccessException ex) {
                java.util.logging.Logger.getLogger(Menu.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            } catch (javax.swing.UnsupportedLookAndFeelException ex) {
                java.util.logging.Logger.getLogger(Menu.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            }
            //</editor-fold>
    
            /* Create and display the form */
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new Menu().setVisible(true);
                }
            });
        }
    
        // Variables declaration - do not modify                     
        private javax.swing.JButton jButton1;
        private javax.swing.JButton jButton2;
        private javax.swing.JLabel jLabel1;
        private javax.swing.JLabel jLabel2;
        private javax.swing.JLabel jLabel3;
        private javax.swing.JLabel jLabel4;
        private javax.swing.JLabel jLabel5;
        private javax.swing.JPanel jPanel1;
        private javax.swing.JPanel jPanel2;
        private javax.swing.JPanel jPanel3;
        private javax.swing.JScrollPane jScrollPane1;
        private javax.swing.JTabbedPane jTabbedPane1;
        private javax.swing.JTable jTable1;
        private javax.swing.JComboBox<String> txtadresse;
        private javax.swing.JTextField txtid;
        private javax.swing.JTextField txtnom;
        private javax.swing.JTextField txttel;
        // End of variables declaration                   
    }
    quand je clic sur run file ça este planter et ces lignes rouges apparaissent:

    Code:
    java.lang.ClassNotFoundException: com.msql.jdbc.Driver
    	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    	at java.lang.Class.forName0(Native Method)
    	at java.lang.Class.forName(Class.java:264)
    	at Menu.connect(Menu.java:32)
    	at Menu.<init>(Menu.java:26)
    	at Menu$5.run(Menu.java:385)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
    	at java.awt.EventQueue.access$500(EventQueue.java:97)
    	at java.awt.EventQueue$3.run(EventQueue.java:709)
    	at java.awt.EventQueue$3.run(EventQueue.java:703)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
    compte tenu la longueur du message j'ai supprimé une partie de code d'erreur
    j'ai aussi diminuer le contenu de private void initComponents() {

    -----

  2. #2
    umfred

    Re : problème d’exécution du code de mon interface windows avec java netbean

    le message d'erreur dit: java.lang.ClassNotFoundExcepti on: com.msql.jdbc.Driver
    ça veut dire qu'il ne trouve pas cette classe (l'erreur se produit dans la fonction connect de Menu)
    Je crois qu'il manque le "y" de mysql dans le nom de la classe de la ligne Class.forName("com.msql.jdbc.D river");

  3. #3
    saniadaff

    Re : problème d’exécution du code de mon interface windows avec java netbean

    Monsieur umfred !

    Bonjour;

    Votre intervention est magique; la connexion est succefull, l'affichage dans la table également!
    Nom : CORRECTION.png
Affichages : 100
Taille : 32,2 Ko

    Mon problème désormais est la syntaxe de la requête;

    le bouton ajouter n'ajoute pas, je sais pas encore pour modifier et le chargement du champ combobox car je ne suis encore laba pour la versification et voici les trois codes:
    -BOUTON AJOUTER

    Code:
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
            // TODO add your handling code here:
    
            try{
                connect();
                pst=(PreparedStatement)con.prepareStatement("INSERT INTO client(id, nom, tel, adresse)values(?,?,?,?)");
                pst.setString(1,txtid.getText());
                pst.setString(2,txtnom.getText());
                pst.setString(3,txttel.getText());
                pst.setString(4,txtadresse.getSelectedItem().toString());
                pst.executeUpdate();
                con.close();
                JOptionPane.showMessageDialog(null, "Client ajouter");
                Table();
                //chagerCombobox();
    
            } catch (Exception e){
                e.printStackTrace();
            }
        }
    BOUTON MODIFIER

    Code:
    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
            // TODO add your handling code here:
            try{
                connect();
                pst=(PreparedStatement)con.prepareStatement("UPDATE client SET name=?, tel=?, adresse=? WHERE id=?");
                pst.setString(4,txtid.getText());
                pst.setString(1,txtnom.getText());
                pst.setString(2,txttel.getText());
                pst.setString(3,txtadresse.getSelectedItem().toString());
                pst.executeUpdate();
                con.close();
                JOptionPane.showMessageDialog(null, "Client modifier");
                Table();
                chagerCombobox();
            } catch(Exception e){
                e.printStackTrace();
            }
        }
    Chargement de donnée dans jCombobox

    Code:
    public void chagerCombobox(){  
        
     try{
            connect();
            Statement st=con.createStatement();
    	rs=st.executeQuery("select adresse from client");
    	while(rs.next()){
    
           //Pour affecter une valeur de base de données à un Combobox 
           txtadresse.addItem(rs.getString("adresse"));
         } 
          con.close();  
         } catch (Exception e){
    	e.printStackTrace();
    	}
          
         }
    la dernière je vais voir ça après qui est l'affichage dans les champs quand je clic sur une ligne de la table;
    Dernière modification par saniadaff ; 26/04/2023 à 15h19.

  4. #4
    umfred

    Re : problème d’exécution du code de mon interface windows avec java netbean

    rien de magique, simple décodage du message d'erreur (ça fait partie du job de développeur)
    Une raison qui peut faire que ça ne fonctionne pas c'est que tu ne passes le bon type de données à ta requête: tu passes systématiquement des chaines de textes pour tes 4 champs, est-ce qu'ils sont définis comme des champs textuels dans la base de données ?

    Pour la modification attention le 1er chiffre de setstring correspond à la position dans la requête, donc 1 va correspondre au champ name, 2 au champ Tel, 3 au champ adresse et 4 au champ id

    Pour le chargement du combobox, il faut avoir des données dans la base, donc je ne sais pas si c'est judicieux d'utiliser un combobox ici (ça pourrait être judicieux si il y avait une table Ville(id_ville, nom_ville) par exemple (et dans ce cas, une clé étrangère dans la table client vers id_ville)

    Je rajoute un petit lien : https://java.developpez.com/faq/jdbc...paredStatement
    Dernière modification par umfred ; 26/04/2023 à 16h28.

  5. A voir en vidéo sur Futura
  6. #5
    saniadaff

    Re : problème d’exécution du code de mon interface windows avec java netbean

    Bonsoir Monsieur umfred;

    id est un int (11) dans la base de donnée
    nom varchar(15)
    tel varchar(11) qui était à int
    adresse text

    je suis allé tout changé dans la base en champ varchar puis adresse en text mais ça n'a pas marché; et je les ai donc remis comme c’était;

    je ne sais pas si c'est dans le code qu'il faut changer?

  7. #6
    saniadaff

    Re : problème d’exécution du code de mon interface windows avec java netbean

    Ok;

    Monsieur umfred , le probleme etait au niveau du chargement du combobox ; quand je suis allé dans propriété puis model et remplir manuellement, ça pris ; donc le code de cette méthode: public void chagerCombobox() ne fonctionne pas et également le bouton modifier dont le code de cette méthode: private void jButton2ActionPerformed(java.a wt.event.ActionEvent evt) ne fonctionne pas, mais il y a le message que la connexion a réussie;

  8. #7
    umfred

    Re : problème d’exécution du code de mon interface windows avec java netbean

    relis ma réponse ... je donne les clés (il me semble) pour corriger.

  9. #8
    saniadaff

    Re : problème d’exécution du code de mon interface windows avec java netbean

    Bonsoir Monsieur umfred ;

    Ça marché depuis !

    Je dois tenter maintenant de faire les menus déroulants, et un autre problème, quand j’agrandi la fenêtre le jpanel dedans n’occupe pas toute la taille et je dois régler ça ;

Discussions similaires

  1. Erreur d’exécution du code Java
    Par saniadaff dans le forum Programmation et langages, Algorithmique
    Réponses: 9
    Dernier message: 12/04/2022, 04h14
  2. [Java] Probleme lors de l'exécution du .jar
    Par invitec3c3e59d dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 10/12/2012, 21h36
  3. Problème exécution de l'application java
    Par invite71539000 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 09/08/2010, 14h14
  4. Problème d'exécution JAVA
    Par invited82a1853 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 29/11/2005, 10h31
  5. Problème d'éxecution de cd avec windows xp
    Par invite428e20bb dans le forum Matériel - Hardware
    Réponses: 2
    Dernier message: 12/11/2004, 16h20