Jtable redimensionnable

Contenu du snippet

Cette source est une table à laquelle on peut ajouter ou supprimer des lignes. Pour cela, elle utilise un DefaultTableModel.

Source / Exemple :


import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

/** 
 * <b>TableauExtensible représente une JTable avec des fonctionnalités d'ajout 
 * et de suppression de lignes.</b>
 * 
 * @author Julien 
 * @version 1.0 
 */
public class TableauExtensible extends JPanel {
    
    private static final long serialVersionUID = -7294611737481736871L;

    /** La Jtable contenue dans le Panel */
    private JTable table;
    
    /**
     * Constructeur de tableau extensible 
     * @param entetes 
     *  Les entetes du tableau 
     */
    public TableauExtensible(final Object[] entetes) {
        Object[][] data = new Object[0][entetes.length];
        this.table = new JTable(new DefaultTableModel(data, entetes));
        JButton ajouter = new JButton("Ajouter");
        ajouter.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                ((DefaultTableModel)(table.getModel())).addRow(
                    new String[entetes.length]
                );
            }
        });
        JButton supprimer = new JButton("Supprimer");
        supprimer.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                ((DefaultTableModel)(table.getModel())).removeRow(
                    table.getSelectedRow()
                );
            }   
        });
        JPanel panelBoutons = new JPanel();
        panelBoutons.setLayout(new FlowLayout());
        panelBoutons.add(ajouter);
        panelBoutons.add(supprimer);
        setLayout(new BorderLayout());
        add(new JScrollPane(table), BorderLayout.CENTER);
        add(panelBoutons, BorderLayout.SOUTH);
    }
}

A voir également

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.