Comment ajouter une ligne dans JTable?

94

Savez-vous comment je peux ajouter une nouvelle ligne à un jTable?

une place
la source

Réponses:

171

Le TableModelderrière le JTable gère toutes les données derrière la table. Pour ajouter et supprimer des lignes d'une table, vous devez utiliser unDefaultTableModel

Pour créer la table avec ce modèle:

JTable table = new JTable(new DefaultTableModel(new Object[]{"Column1", "Column2"}));

Pour ajouter une ligne:

DefaultTableModel model = (DefaultTableModel) table.getModel();
model.addRow(new Object[]{"Column 1", "Column 2", "Column 3"});

Vous pouvez également supprimer des lignes avec cette méthode.

Tous les détails sur le DefaultTableModel peuvent être trouvés ici

Serplat
la source
2
+1 C'est une bonne réponse; cependant, notez que le DefaultTableModel n'est que l'un des nombreux modèles. Cependant, c'est le plus simple à utiliser et je vous recommande de vous y tenir à moins que vous n'ayez à en utiliser un autre.
chessofnerd
2
En créant la table avec votre première ligne de code, j'obtiens une erreur "Le constructeur DefaultTableModel (Object []) est indéfini"
ThisClark
4
@ThisClark: Pour ce constructeur DefaultTableModel, vous devez également ajouter rowCount, comme:JTable table = new JTable(new DefaultTableModel(new Object[]{"Column1", "Column2"}, 20));
Plenus Franckly
57

Utilisation:

DefaultTableModel model = new DefaultTableModel(); 
JTable table = new JTable(model); 

// Create a couple of columns 
model.addColumn("Col1"); 
model.addColumn("Col2"); 

// Append a row 
model.addRow(new Object[]{"v1", "v2"});
Poneys OMG
la source
12

Pour ajouter la ligne à JTable, l' un des moyens est la suivante :

1) Créez une table à l'aide de DefaultTableModel:

        DefaultTableModel model = new DefaultTableModel();
        model.addColumn("Code");
        model.addColumn("Name");
        model.addColumn("Quantity");
        model.addColumn("Unit Price");
        model.addColumn("Price");
        JTable table = new JTable(model);

2) Pour ajouter une ligne:

        DefaultTableModel model = (DefaultTableModel) table.getModel();
        model.addRow(new Object[]{"Column 1", "Column 2", "Column 3","Column 4","Column 5"});
Muhammad Rehan Qadri
la source
9

Utilisation

    DefaultTableModel model = (DefaultTableModel) MyJTable.getModel();

    Vector row = new Vector();
    row.add("Enter data to column 1");
    row.add("Enter data to column 2");
    row.add("Enter data to column 3");
    model.addRow(row);

obtenir le modèle avec DefaultTableModel modelName = (DefaultTableModel) JTabelName.getModel();

Créer un vecteur avec Vector vectorName = new Vector();

ajouter autant row.addde colonnes

ajouter bientôt il suffit de l'ajouter avec modelName.addRow(Vector name);

user3452695
la source
2

Par souci d'exhaustivité, assurez-vous d'abord que vous disposez de l'importation correcte afin de pouvoir utiliser la addRowfonction:

import javax.swing.table.*;

En supposant que votre jTable est déjà créé, vous pouvez continuer et créer votre propre méthode d'ajout de ligne qui acceptera les paramètres dont vous avez besoin:

public void yourAddRow(String str1, String str2, String str3){
  DefaultTableModel yourModel = (DefaultTableModel) yourJTable.getModel();
  yourModel.addRow(new Object[]{str1, str2, str3});
}
Joël Karunungan
la source