Comment Ajouter et supprimer une ligne dans une JTable

cs_redbar Messages postés 112 Date d'inscription mardi 26 janvier 2010 Statut Membre Dernière intervention 26 mai 2014 - 18 nov. 2010 à 15:37
cs_redbar Messages postés 112 Date d'inscription mardi 26 janvier 2010 Statut Membre Dernière intervention 26 mai 2014 - 22 nov. 2010 à 11:42
Salut à tous
je suis débutant et je travaille en ce moment sur mon premier logiciel en java et je croise un certain nombre de probleme que je m'efforce à résoudre tant mieux que mal. Mais pour d'autre j'ai besoin de votre aide.
Je voudrais savoir comment ajouter et supprimer le contenu de mes JTextField à une JTable.
Un exemple de code me sera d'une très grande utilité puis que depuis 3 jour je flash la dessus.
Merci pour votre aide.

2 réponses

uhrand Messages postés 491 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juillet 2012 9
21 nov. 2010 à 02:59
Essaie avec un modèle de tableau par défaut (DefaultTableModel).

Un DefaultTableModel peut être considéré comme un tableau à 2 dimensions.
Toutefois, il a des méthodes pour ajouter ou supprimer de nouvelles lignes / colonnes, par exemple "addRow".

Voici un petit exemple de code:

import java.awt.*;
import java.awt.event.*;
import java.util.Vector;
import javax.swing.*;
import javax.swing.table.*;

public class JTableDemo {

    private final DefaultTableModel model;
    private final JTable table;

    public JTableDemo() {
        // column names
        String[] titles = new String[]{"Title 0", "Title 1", "Title 2", "Title 3"};
        // The model we use. Here we set the titles,
        // but later on it is still possible to add more columns and/or rows:
        model = new DefaultTableModel(titles, 0);
        // initialize the JTable:
        table = new JTable(model);
        // buttons to control the table:
        final JButton buttonAddRow = new JButton("add row");
        final JButton buttonRemRow = new JButton("remove row");
        final JButton buttonAddCol = new JButton("add column");
        buttonRemRow.setEnabled(false);
        // give actions to the buttons:
        buttonAddRow.addActionListener(new ActionListener() {

            public void actionPerformed(final ActionEvent e) {
                // the number of columns
                int size = model.getColumnCount();
                // create a new vector for row data
                Vector rowData = createDataVector("row", size);
                // add a new row
                model.addRow(rowData);
                // enable remove row
                buttonRemRow.setEnabled(true);
            }
        });
        buttonAddCol.addActionListener(new ActionListener() {

            public void actionPerformed(final ActionEvent e) {
                int size = model.getRowCount();
                Vector columnData = createDataVector("column", size);
                String name = "Title " + model.getColumnCount();
                model.addColumn(name, columnData);
            }
        });
        buttonRemRow.addActionListener(new ActionListener() {

            public void actionPerformed(final ActionEvent e) {
                int size = model.getRowCount();
                int index = (int) (Math.random() * size);
                model.removeRow(index);
                buttonRemRow.setEnabled(size > 1);
            }
        });
        JFrame frame = new JFrame("JTableDemo");
        Container content = frame.getContentPane();
        content.add(new JScrollPane(table), BorderLayout.CENTER);
        content.add(buttonAddRow, BorderLayout.NORTH);
        content.add(buttonRemRow, BorderLayout.SOUTH);
        content.add(buttonAddCol, BorderLayout.WEST);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(final String[] args) {
        Runnable gui = new Runnable() {

            public void run() {
                JTableDemo jTableDemo = new JTableDemo();
            }
        };
        SwingUtilities.invokeLater(gui);
    }

    private Vector createDataVector(final String prefix, final int size) {
        Vector vector = new Vector(size);
        for (int i = 0; i < size; i++) {
            int rows = model.getRowCount();
            int columns = model.getColumnCount();
            vector.add(prefix + " : "
                    + (prefix.equals("row") ? rows : columns)
                    + " : " + i);
        }
        return vector;
    }
}
0