Как добавить строку в JTable?

Ответы:

172

За TableModelJTable обрабатываются все данные за таблицей. Чтобы добавлять и удалять строки из таблицы, вам необходимо использоватьDefaultTableModel

Чтобы создать таблицу с этой моделью:

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"});
OMG Пони
источник
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);

пользователь3452695
источник
1

Для полноты картины сначала убедитесь, что у вас есть правильный импорт, чтобы вы могли использовать 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});
}
Джоэл Карунунган
источник