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

Composants Java Discussion :

Modifier,supprimer et ajouter des données d'une base de données sur un JTable


Sujet :

Composants Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2015
    Messages : 23
    Points : 22
    Points
    22
    Par défaut Modifier,supprimer et ajouter des données d'une base de données sur un JTable
    Bonjour, svp aidez moi avec ce problème.
    Après des recherches je suis toujours confus car je suis débutant en java.
    J' ai ma base de données et j' affiche le contenu d'une table sur la fenetre de mon application c'est à dire avec le JTable.
    Ce que je veux maintenant c'est modifier, supprimer et ajouter des données à l'aide
    de 3 boutons c'est à dire bouton modifier, bouton supprimer et bouton ajouter de telle sorte que lorsque
    je selectionne une donnée c'est à dire une ligne je puisse modifier avec bouton modifier, supprimer avec bouton supprimer
    et ajouter avec bouton ajouter. ces boutons sont :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                    boutonsPanel2.add(resultPanel2_ajouter);
    		boutonsPanel2.add(resultPanel2_modifier);
    		boutonsPanel2.add(resultPanel2_supprimer);
    Voici mon code:
    la connexion à la base de donnée est OK et c' est la methode qui fait cette conexion
    les boutons sont à l 'intérieur du 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
    public  void  voir_list_client_JTable(){
     
    	    ArrayList<Client> mesCli = new ArrayList<Client>();
    		Connection connect =DataBaseAccess.open();   // conexion a ma base de donnée
    		DataBaseAccess D =new DataBaseAccess();     //  la classe de conexion
     
    	try {
    		Statement state = connect.createStatement();  //On crée un statement
     
    		D.resultSet = D.state.executeQuery("SELECT * FROM Client");  //On exécute la requête
     
    		ResultSetMetaData meta = D.resultSet.getMetaData();  //On récupère les meta afin de récupérer le nom des colonnes
     
    		//On initialise un tableau d'Object pour les en-têtes du tableau 
    		Object[] column = new  Object[meta.getColumnCount()];
    		for(int i = 1 ; i <= meta.getColumnCount(); i++)
    		column[i-1] = meta.getColumnName(i);               // les colonnes 
     
    		//Petite manipulation pour obtenir le nombre de lignes
    		D.resultSet.last();
    		int rowCount = D.resultSet.getRow();
    		Object[][] data = new  Object[D.resultSet.getRow()][meta.getColumnCount()];
     
    		//On revient au départ
    		D.resultSet.beforeFirst();
    		int j = 1;
     
    		//On remplit le tableau d'Object[][]
    		while(D.resultSet.next()){
    		for(int i = 1 ; i <= meta.getColumnCount(); i++)
    		data[j-1][i-1] = D.resultSet.getObject(i);         // les données
    		j++;
    		}
     
    		//On ferme le tout
    		D.resultSet.close();
    		state.close();
     
    		resultPanel2.removeAll(); //On enlève le contenu de notre conteneur
     
     
    		JTable jtb=new  JTable(data, column);
    		resultPanel2.add(new  JScrollPane(new  JTable(data, column)), BorderLayout.CENTER); //On y ajoute un JTable
     
    		boutonsPanel2.add(resultPanel2_ajouter);
    		boutonsPanel2.add(resultPanel2_modifier);
    		boutonsPanel2.add(resultPanel2_supprimer);
     
     
            resultPanel2.add(boutonsPanel2, BorderLayout.SOUTH);
     
            resultPanel2.revalidate(); //On force la mise à jour de l'affichage
     
    		centerPane2.removeAll();
    		centerPane2.add(resultPanel2, BorderLayout.CENTER);
    		this.add(centerPane2, BorderLayout.CENTER);
    		this.validate();
    		this.repaint();
    		} catch  (SQLException e) {
     
    		resultPanel2.removeAll();  //Dans le cas d'une exception, on affiche une pop-up et on efface le contenu
    		resultPanel2.add(new  JScrollPane(new  JTable()), BorderLayout.CENTER);
    		resultPanel2.revalidate();
     
    		centerPane2.removeAll();
    		centerPane2.add(resultPanel2, BorderLayout.CENTER);
    		this.add(centerPane2, BorderLayout.CENTER);
    		this.validate();
    		this.repaint();
     
    		JOptionPane.showMessageDialog(null, e.getMessage(), "ERREUR ! ",JOptionPane.ERROR_MESSAGE);
    				}
    	}

  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,

    Tout d'abord, si tu veux pouvoir ajouter des lignes, ou en supprimer, dans la JTable, il va falloir que tu passes par un modèle qui le permet, donc pas par le modèle par défaut. Tu peux prendre un DefaultTableModel qui fournit une implémentation de base suffisante pour de nombreux cas, même s'il est souvent intéressant d'utiliser des classes métier, donc de faire sa propre implémentation.

    Ainsi, tu peux créer ta JTable de manière très similaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DefaultTableModel model = new DefaultTableModel(data, column);
    JTable table = new JTable(model);
    Tu peux conserver une référence sur le modèle, ou le récupérer de la JTable par DefaultTableModel model = (DefaultTableModel)table.getModel();En revanche, attention à l'utilisation de curseur : il faut premièrement créer le statement avec les paramètres adéquats (par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                       ResultSet.CONCUR_READ_ONLY)
    ), et surtout qu'ils soient supportés par ton pilote et sgbd. On peut aussi charger au fur et à mesure les données (d'ailleurs, ça pourra être plus interessant si on veut paralléliser en cas de résultat très grand) dans une liste et la transformer en tableau.
    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.

Discussions similaires

  1. [MySQL] ajouter des fichiers dans une base de données phpmyadmin
    Par turki chaima dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 03/03/2014, 19h36
  2. [Débutant] Ajout des enregistrement d'une base de donnes acces via une autre base acces
    Par nefzawi dans le forum Visual Studio
    Réponses: 0
    Dernier message: 14/04/2013, 21h42
  3. Réponses: 5
    Dernier message: 10/01/2008, 08h47
  4. Ajouter des éléments dans une base de données Access
    Par bidule123456 dans le forum ASP
    Réponses: 74
    Dernier message: 07/09/2007, 14h00

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