Redimensionner une jtable

Contenu du snippet

Cette source explique comment ajouter/supprimer des lignes et des colonnes sur une JTable en utilisant un DefaultTableModel

Source / Exemple :


import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

public class TableauExtensible {

	
	/* Creation de la table en utilisant DefaultTableModel */
	public static JTable creationDeLaTable(){
		/* On cree les entetes de la table */
		Object[] entetes = new Object[]{"colonne1", "colonne2", "colonne3"};
		/* On cree le tableau contenant les données */
		Object[][] data = new Object[0][entetes.length];
		return new JTable(new DefaultTableModel(data, entetes));
	}

	/* Ajout d'une ligne (il faut que la table ait un modele DefaultTableModel) */
	public static void ajouterLigne(JTable table, String[] valeurs){
		((DefaultTableModel)(table.getModel())).addRow(valeurs);
	}

	/* Ajout d'une colonne (il faut que la table ait un modele DefaultTableModel) */
	public static void ajouterColonne(JTable table, String valeur){
		((DefaultTableModel)(table.getModel())).addColumn(valeur);
	}

	/* Suppression d'une ligne (il faut que la table ait un modele DefaultTableModel) */
	public static void supprimerLigne(JTable table, int indice){
		((DefaultTableModel)(table.getModel())).removeRow(indice);
	}

	/* Suppression d'une colonne*/
	public static void suppriemerColonnne(JTable table, int i){		 
		table.removeColumn(table.getColumnModel().getColumn(i));
	}
	
	/* Une main pour tester*/
	public static void main(String[] args){
		JFrame f = new JFrame();
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.getContentPane().setLayout(new BorderLayout());
		final JTable table = creationDeLaTable();
		f.getContentPane().add(table.getTableHeader(), BorderLayout.NORTH);
		f.getContentPane().add(table, BorderLayout.CENTER);
		JButton testFonction = new JButton("Tester");
		testFonction.addActionListener(new ActionListener() {
			
			public void actionPerformed(ActionEvent arg0) {
				/* Modifier la fonction appelée pour les autres tests */
				ajouterColonne(table, "Nouvelle");
				
			}
		});
		f.getContentPane().add(testFonction, BorderLayout.SOUTH);
		f.setSize(200, 200);
		f.setLocationRelativeTo(null);
		f.setVisible(true);
	}
	
	
}

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.