Supprimer une ligne dans un tableau JDBC

mathurin2010 Messages postés 4 Date d'inscription mercredi 10 septembre 2014 Statut Membre Dernière intervention 12 septembre 2014 - 10 sept. 2014 à 18:52
cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 - 8 déc. 2014 à 11:35
Bonjour,j'ai besoin de votre aide. Je veux fais un tableau en JDBC avec un bouton supprimer qui permet de supprimer une ligne sélectionnée du tableau. Merci !!!

1 réponse

cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 11
11 sept. 2014 à 11:57
Salut,

je crois que tu mélanges plusieurs choses...
Tu as fait un tableau et tu as sans doute une connexion JDBC (base de données)

tu as un boutton 'supprimer' et tu veux supprimer de ta table ou de ta base de données?
peux tu être plus précis par rapport à ton boutton? quel genre de bouton? swing? awt? web?
0
mathurin2010 Messages postés 4 Date d'inscription mercredi 10 septembre 2014 Statut Membre Dernière intervention 12 septembre 2014
11 sept. 2014 à 14:16
merci cormandyr en fait c'est un bouton swing qui permet de supprimer 1 ou plusieurs des données sur la base. J'espére que je suis assez claire.
0
cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 11
11 sept. 2014 à 14:41
Alors, pour l'action du bouton, tu utilises un ActionListener

new JButton("button").addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent evt) {
//ce qui doit etre exécuter lorsque tu utilises le bouton
}
});

pour ce qui est de la suppression de la base de données, tu dois exécuter une requete SQL de suppression...
Cependant, il ne faudra pas oublier de rafraichir ta table....
0
mathurin2010 Messages postés 4 Date d'inscription mercredi 10 septembre 2014 Statut Membre Dernière intervention 12 septembre 2014
11 sept. 2014 à 15:45
Je sais mais je veux que si on choisit une ligne du tableau et qu'on click sur le bouton que sa supprime la ligne choisie. Merci d'avantage!!!
0
cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 11
11 sept. 2014 à 16:38
Alors la tu dois avoir un lien entre le bouton et le tableau...

via la méthode JTable#getSelectedRow() (http://docs.oracle.com/javase/7/docs/api/javax/swing/JTable.html#getSelectedRow()) tu peux savoir quelle ligne est sélectionnée...
Attention que si tu as des colonnes triables, tu vas devoir reconvertir ton index de ligne pour avoir ton index model (JTable#getRowSorter().convertRowIndexToModel())

Avec cette info, tu as la possibilité de savoir quel object de ton model doit être supprimé... (l'ajout d'une méthode dans ton model est sans doute nécessaire)


final JButton btn...
final JTable table
ActionListener action = new ActionListener()
{
try
{
int selectedRow = table.getSelectedRow();
int modelIndex = table.getRowSorter().convertRowIndexToModel();
MyTableModel model = (MyModel)table.getModel();
SGBD.removeItem(model.getItem(modelIndex));
} catch(Exception ex)
{
ex.printStackTrace();
}
}
le code n'a pas été testé ni compilé, c'est juste pour te donner une idée...
0
mathurin2010 Messages postés 4 Date d'inscription mercredi 10 septembre 2014 Statut Membre Dernière intervention 12 septembre 2014
12 sept. 2014 à 01:44
je l'ai fait sa ne marche toujours pas voici mon programme
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.table.DefaultTableModel;
import javax.swing.*;

@SuppressWarnings("serial")
public class Tables extends JFrame implements ActionListener{
	JScrollPane jsp;
	JTable tab;
	JButton bouton;
	Container c;
   private Object[][] cellules ={
      {"Mercure", "24400", "0", "false", "Color.yellow"},
      {"Vénus", "6052.0", "0", "false", "Color.yellow"},
      {"Terre", "6378.0", "1", "false", "Color.blue"},
      {"Mars", "3397.0", "2", "false", "Color.red"},
      {"Jupiter", "71492.0", "16", "true", "Color.orange"},
      {"Saturne", "60268.0", "18", "true", "Color.orange"},
      {"Uranus", "25559.0", "17", "true", "Color.blue"},
      {"Neptune", "24766.0", "8", "true", "Color.blue"},
      {"Pluton", "1137.0", "1", "false", "Color.black"}
   };
   public String[] nomColonnes = {"Planète", "Rayon", "Satellites", "Gazeuse", "Couleur"};
   int ligneSelectionne;
   public Tables() {
      super("Planètes");
      c=this.getContentPane();
      tab=new JTable(cellules, nomColonnes);
      jsp=new JScrollPane(tab);
      c.add(jsp);
      bouton.setText("Supprimer");
      bouton.addActionListener(this); 
      c.add(bouton,BorderLayout.SOUTH);
      pack();
      setDefaultCloseOperation(EXIT_ON_CLOSE);  
   }
   
   public void actionPerformed(ActionEvent e) {
		if (e.getSource() == bouton){
			DefaultTableModel model = (DefaultTableModel) tab.getModel();
	        model.removeRow(tab.getSelectedRow());
		}
	}
   
   public static void main(String[] args) {
	   Tables t=new Tables(); 
	   t.setVisible(true);
	   }
}
0
Rejoignez-nous