Bagaimana cara menambahkan baris di JTable?

94

Tahukah Anda bagaimana saya dapat menambahkan baris baru ke a jTable?

oneat
sumber

Jawaban:

172

Bagian TableModelbelakang JTable menangani semua data di belakang tabel. Untuk menambah dan menghapus baris dari tabel, Anda perlu menggunakan fileDefaultTableModel

Untuk membuat tabel dengan model ini:

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

Untuk menambahkan baris:

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

Anda juga dapat menghapus baris dengan metode ini.

Detail lengkap tentang DefaultTableModel dapat ditemukan di sini

Serplat
sumber
2
+1 Ini adalah jawaban yang bagus; Namun, perhatikan bahwa DefaultTableModel hanyalah salah satu dari banyak model. Namun, ini adalah yang termudah untuk digunakan dan saya akan merekomendasikan untuk tetap menggunakannya kecuali Anda harus menggunakan yang lain.
caturofnerd
2
Saat membuat tabel dengan baris kode pertama Anda, saya mendapatkan kesalahan "The constructor DefaultTableModel (Object []) tidak terdefinisi"
ThisClark
4
@ThisClark: Untuk konstruktor DefaultTableModel, Anda juga perlu menambahkan rowCount, seperti:JTable table = new JTable(new DefaultTableModel(new Object[]{"Column1", "Column2"}, 20));
Plenus Franckly
57

Menggunakan:

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 Ponies
sumber
12

Untuk menambahkan baris ke JTable, salah satu caranya adalah:

1) Buat tabel menggunakan 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) Untuk menambahkan baris:

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

Menggunakan

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

dapatkan modelnya DefaultTableModel modelName = (DefaultTableModel) JTabelName.getModel();

Buat Vektor dengan Vector vectorName = new Vector();

tambahkan sebanyak row.addkolom

tambahkan segera tambahkan saja dengan modelName.addRow(Vector name);

pengguna3452695
sumber
1

Demi kelengkapan, pertama-tama pastikan Anda memiliki impor yang benar agar Anda dapat menggunakan addRowfungsi:

import javax.swing.table.*;

Dengan asumsi jTable Anda sudah dibuat, Anda dapat melanjutkan dan membuat metode add row Anda sendiri yang akan menerima parameter yang Anda butuhkan:

public void yourAddRow(String str1, String str2, String str3){
  DefaultTableModel yourModel = (DefaultTableModel) yourJTable.getModel();
  yourModel.addRow(new Object[]{str1, str2, str3});
}
Joel Karunungan
sumber