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