Як додати рядок у JTable?


94

Чи знаєте ви, як я можу додати новий рядок до jTable?

Відповіді:


171

TableModelЗа JTable обробляє всі дані за столом. Для того, щоб додати та вилучити рядки з таблиці, вам потрібно скористатись aDefaultTableModel

Щоб створити таблицю за цією моделлю:

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

Щоб додати рядок:

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

Ви також можете видалити рядки цим методом.

Детальну інформацію про DefaultTableModel можна знайти тут


2
+1 Це хороша відповідь; однак зауважте, що DefaultTableModel - лише одна з багатьох моделей. Однак він найпростіший у використанні, і я б рекомендував дотримуватися його, якщо вам не доведеться використовувати інший.
chessofnerd

2
Під час створення таблиці з вашим першим рядком коду я отримую повідомлення про помилку "Конструктор DefaultTableModel (Object []) не визначений"
ThisClark

4
@ThisClark: Для цього конструктора DefaultTableModel вам також потрібно додати rowCount, наприклад:JTable table = new JTable(new DefaultTableModel(new Object[]{"Column1", "Column2"}, 20));
Plenus Franckly

57

Використання:

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"});

12

Щоб додати рядок в JTableодин із способів є:

1) Створіть таблицю за допомогою 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) Щоб додати рядок:

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

9

Використовуйте

    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);

отримати модель за допомогою DefaultTableModel modelName = (DefaultTableModel) JTabelName.getModel();

Створіть вектор за допомогою Vector vectorName = new Vector();

додати стільки, row.addскільки стовпців

скоро додати просто додати modelName.addRow(Vector name);


2

Для повноти спочатку переконайтесь, що у вас є правильний імпорт, щоб ви могли використовувати addRowфункцію:

import javax.swing.table.*;

Припускаючи, що ваша jTable вже створена, ви можете продовжити і створити власний метод додавання рядка, який прийме потрібні вам параметри:

public void yourAddRow(String str1, String str2, String str3){
  DefaultTableModel yourModel = (DefaultTableModel) yourJTable.getModel();
  yourModel.addRow(new Object[]{str1, str2, str3});
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.