Comment supprimer une ligne de JTable en Java

Une JTable est une sous-classe de la classe JComponent pour afficher des structures de données complexes. Un composant JTable peut suivre le modèle de conception Model View Controller (MVC) pour afficher les données dans des lignes et des colonnes. Une JTable peut générer des interfaces ListSelectionListener, TableColumnModelListener, TableModelListener, CellEditorListener et RowSorterListener. Nous pouvons supprimer une ligne sélectionnée d’un JTable en utilisant la méthode removeRow() de la classe DefaultTableModel.
 
 

Exemple:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;

public class DeleteRow extends JFrame 
{
   private JTable table;
   private JButton btn;
   private DefaultTableModel tablemodel;
   private String[] columns;
   private Object[][] rows;
   
   public DeleteRow() 
   {
      setTitle("Supprimer une ligne selectionnee");
      columns = new String[] {"ID", "Employee"};
      rows = new Object[][] {
            {"0001", "Alex"}, 
            {"0002", "Bob"}, 
            {"0003", "Thomas"}, 
            {"0004", "Yohan"},
            {"0005", "Juliette"},
            {"0006", "Emily"}
      };
      tablemodel = new DefaultTableModel(rows, columns);
      table = new JTable(tablemodel);
      table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
      btn = new JButton("Supprimer");
    
      btn.addActionListener(new ActionListener() 
      {
         @Override
         public void actionPerformed(ActionEvent ae) 
         {
            // vérifier d'abord la ligne sélectionnée
            if(table.getSelectedRow() != -1) 
            {
               // supprimer la ligne sélectionnée du modèle de table
               tablemodel.removeRow(table.getSelectedRow());
               JOptionPane.showMessageDialog(null, "Deleted successfully");
            }
         }
      });
    
      add(new JScrollPane(table), BorderLayout.CENTER);
      add(btn, BorderLayout.SOUTH);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setSize(420, 320);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   public static void main(String args[]) 
   {
      new DeleteRow();
   }
}

 
 
Sortie: Avant la suppression
 

 
Sortie: Après la suppression
 

 

Partagez cet article

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *