Gestion de stock avec du java sous netbeans [Résolu]

Messages postés
68
Date d'inscription
jeudi 27 janvier 2011
Dernière intervention
7 février 2014
-
Salut tout le monde !
je suis entraine de developper une petite application concernant une gestion de stock crée dans une BD MySql, cette derniere contient 5 tables=> Client,Produit,Fournisseur,Commande et ligne_commande. là mon probleme est dans le formulaire qui presente les commandes là je vais retourner les numeros d commandes avec les produits demandés et les prix convenables :
une commande peut contenir plusieur produits à la fois alors l'utilisateur peut ajouter une commande en choisissant "n" nombre de produits qu'il souhaite avoir dans cette commande puis pour chaque "n" il va selectionner un produit (le fait de selectionner c'est à partir de la table produit pour séléctionner des produits existant dans notre BD) alors ma question c'est :
est ce possible de faire ça ,puisqu'il s'agit de selection de produits dc j'aurai besoin des combobox, mais là le "n" qui controle le nombre de combo existant dans mon formulaire! alors comment créer des combo et cmt recuperer leur contenu pr l'ajouter dans mes 2 tables commandes et ligne_commande???
j'ai pensé à recupere le "n" d'un Jtextfield et mettre une boucle :

String champ1=jText1.getText();
int n=Integer.Parseint(champ1);
while(i=1;i=<n;i++){
//là la création de "n" combo et c'est le code que j'ignore
}

comment j vais savoir les noms des combo crées puisqu'ils vont etre crées dans une boucle et j'aurais besoin de leurs noms pour acceder a leur contenu par: comboX.getSelectedItem();
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
68
Date d'inscription
jeudi 27 janvier 2011
Dernière intervention
7 février 2014
2
Merci
merciiiiiiiiiii
en fait j'ai trouvé une autre solution plus pratique pour pouvoir parcourir les elements de ma table de BDD et les sélectionner et récupérer ce qui est sélectionné!!!
et là j'ai utilisé 2 jTable: jTable1 qui affiche tout mon contenu et dont j sélectionne les éléments que j désir, et jTable2 dont j récupère les elements que j'ai sélectionné apres avoir cliquer sur un bouton et voilà mon code de remplissage de jTable1 qui récupère les elements de ma table dans ma base de données:

pour que mon jTable soit rempli dès le debut d'ouverture de ma fenetre j'ai mis ce code dans le event>>internalFrame>>internalFrameOpened de ma formulaire :

private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { 
 Connexion conn;
try {
                conn.Connecter();
                Connection cnx;
                cnx = conn.con;
                Produit prd = new Produit();
                try {
                    prd.remplir(cnx, jTable1, ch);
                    
                    } catch (SQLException ex) {
                    Logger.getLogger(Produits.class.getName()).log(Level.SEVERE, null, ex);
                }
                cnx.close();

            } catch (ClassNotFoundException ex) {
                Logger.getLogger(Produits.class.getName()).log(Level.SEVERE, null, ex);
}


pour le code de la connexion j l'ai mis dans une class "Connexion" qui comporte la methode Connecter():

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


public class Connexion {

 String url ="jdbc:mysql://localhost:3306/gestion_stock";
public Connection con; 
        
        
        public void Connecter() throws ClassNotFoundException, InstantiationException, IllegalAccessException{
            try {
 Class.forName("com.mysql.jdbc.Driver").newInstance();
 con= DriverManager.getConnection(url,"root","");  
 System.out.println("pilote Mysql chargé"); 
  } catch(SQLException sqle) {
 System.err.println(" Erreur lors de la connexion : " + sqle.getMessage()) ;
 } 
        }
}

et pour la fonction remplir() qui rempli le jTable1 elle se trouve dans une autre class "Produit":

public class Produit {
  public Produit() {}
 public void remplir(Connection con,JTable Liste,String req)throws SQLException{
       
        DefaultTableModel d=(DefaultTableModel) Liste.getModel();
        d.setRowCount(0);
        Statement st=con.createStatement();
        ResultSet rst= st.executeQuery(req);
          while (rst.next()){
              d.insertRow(Liste.getRowCount(), new Object[]{rst.getInt("Num_prd"),
              rst.getString("Nom_prd"),rst.getInt("Prix"),rst.getInt("Qte_stock"),
              rst.getInt("Num_frn")});
          }    
}

voyons mnt le remplissage de notre jTable2 qui se fait a partir de selection des elements de jTable2:
ce remplissage se fait quand on click sur la bouton "ok", donc voilà le code de notre bouton :
NB: mes 2 jTables contiennent 3 colonnes num_prd,num_cmd et qte_cmd

 private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
     if (jTable1.getSelectedRow() == -1) {
                    JOptionPane.showMessageDialog(this, "Il Faut d'abord Selectionné un produit");
                } else {
                 
                    int row = jTable1.getSelectedRow();
                    String num_prd = jTable1.getValueAt(row, 0).toString();
                    String num_cmd = jTable1.getValueAt(row,1).toString();
                   String qte_cmd = jTable1.getValueAt(row,     2).toString();               
                  if (jTable2.getRowCount() == -1) {} 
                  else {
                    for (int i = 0; i <= jTable2.getRowCount() - 1; i++) {
//num_prd est le 1er element dans chaque colonne de jTable1 et jTable2
            if (Integer.parseInt(jTable2.getValueAt(i, 0).toString()) == Integer.parseInt(num_prd)) {

                                    index = i;

                                }

/*pour eviter l'ajout de la meme ligne plusieur fois si le num_prd n'existe pas déjà dans jTable2 là on va ajouter la ligne selectionnée du jtable1 dans jTable2 */
                        if (index == -1) {
       DefaultTableModel d = (DefaultTableModel) jTable2.getModel();
   d.insertRow(jTable2.getRowCount(), new Object[]{num_prd, num_cmd, qte_cmd});
                        } else {

                           index = -1;
 JOptionPane.showMessageDialog(this, "l'element Selectionné existe déjà!");
                        }

                    }
                
    }             


eeeeet voilà j'ai essayé de mettre l'essentiel du code et c'est à chaqu'1 de mettre ces propres conditions

Merci!

Merci smahaneAAI 2

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 103 internautes ce mois-ci

Commenter la réponse de smahaneAAI
Messages postés
68
Date d'inscription
jeudi 27 janvier 2011
Dernière intervention
7 février 2014
0
Merci
ayyyyyye j'aurais pas utilisé un jCombo j vais utiliser un checkbox qui contient touts les produits existant dans ma BD et là j vais récuperer les case cochées :D voilà c'est l'idée mais je me demande comment remplir ma table ligne_commande en récuperant les valeurs des case cochées ???
sachant que la table ligne_commande contient les champs suivants: num_commmande, num_produit et quantite_commande
et merci d'avance
Commenter la réponse de smahaneAAI
0
Merci
Bonjour,

Pour avoir une petite idée de ce que tu peux faire avec les JCheckBox, tu peux jeter un coup d'oeil ICI.

Pour vérifier si une checkbox est cochée, tu peux utiliser la méthode isSelected() qui te renverra true si elle est cochée. Si oui, tu pourrais faire appel à getText() pour récupérer le texte de ta JCheckBox. Il te suffit en fait de parcourir toutes tes checkbox et de faire ce que je viens de dire plus haut. Après, tu peux construire ta requête SQL avec la valeurs récupérées.

Poste nous ton code lorsque tu auras avancé dessus si jamais tu as un problème ou s'il y a quelque chose que tu n'as pas compris.


--
Pylouq
(Lire le Réglement n'a jamais tué personne, au pire ça a instruit des gens.)
Commenter la réponse de Utilisateur anonyme
Messages postés
68
Date d'inscription
jeudi 27 janvier 2011
Dernière intervention
7 février 2014
0
Merci
ayyyyy dsl pour le 1er code de "formInternalFrameOpened" j'ai oublier cette ligne :

String ch = "select * from produit";


on peut la poser apres la construction de l'Objet Produit :
Produit prd = new Produit();

ch represente ma requete de selection des elements de ma table de BDD
Commenter la réponse de smahaneAAI
0
Merci
Tant mieux alors si tu es débloqué. A l'avenir, pense à utiliser les balises d'affichages du code pour que tes posts soient plus propres. Et pour clore le sujet, clique sur "Réponse acceptée" =D

--
Pylouq
(Lire le Réglement n'a jamais tué personne, au pire ça a instruit des gens.)
Commenter la réponse de Utilisateur anonyme
Messages postés
68
Date d'inscription
jeudi 27 janvier 2011
Dernière intervention
7 février 2014
0
Merci
hhh Désoléée j'ai pas fait attention merci qd même
Commenter la réponse de smahaneAAI
0
Merci
voici un tutorial application gestion de stock
partie1
https://www.youtube.com/watch?v=XFK1fLxVgxU
partie 2
https://www.youtube.com/watch?v=5jSCzAwZY5g
sous netbeans JAVA et MYSQL
Whismeril
Messages postés
12373
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 décembre 2018
-
Bonjour, j'ai modifié ton message pour que les liens soient clickables.
Cependant, à mon sens, les tutos vidéo en programmation ne sont pas pratiques, tu ne peux pas copier le code pour le tester par exemple.
De plus 2 tutos de 2h faut être super motivé.....

Posté depuis CCM Live forum pour iPhone/iPad
oliviavigne
Messages postés
10
Date d'inscription
vendredi 19 août 2011
Dernière intervention
3 juin 2015
> Whismeril
Messages postés
12373
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 décembre 2018
-
Mon frère pour récupérer les données provenant d'une table dans un Combox tu peux utiliser la méthode suivante :

public void RemplirCombo(){
try{
String sql = "SELECT designation FROM tableproduit";
pst = conn.prepairestatment(sql);
rs = pst.executequery();

while(rs.next()){
String desig = rs.getString("designation");
Combo.addItem(desig);
}
}
catch(){
}
}

après il faut récupérer la méthode RemplirCombo() au niveau de ton Jcombobox avec une méthode d'actionperformed.
voici un code que j'ai écris à la hâte mais qui peut pourtant t'aider à utiliser les combo pour récupérer les données d'une table.
merci
Commenter la réponse de developpeur

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.