Làm thế nào để thêm hàng trong JTable?


94

Bạn có biết làm cách nào để tôi có thể thêm một hàng mới vào a jTablekhông?

Câu trả lời:


171

Phía TableModelsau JTable xử lý tất cả dữ liệu phía sau bảng. Để thêm và xóa các hàng khỏi bảng, bạn cần sử dụngDefaultTableModel

Để tạo bảng với mô hình này:

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

Để thêm một hàng:

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

Bạn cũng có thể xóa các hàng bằng phương pháp này.

Chi tiết đầy đủ về DefaultTableModel có thể được tìm thấy tại đây


2
+1 Đây là một câu trả lời hay; tuy nhiên, lưu ý rằng DefaultTableModel chỉ là một trong nhiều mô hình. Tuy nhiên, nó là cách dễ sử dụng nhất và tôi khuyên bạn nên dùng nó trừ khi bạn phải sử dụng cái khác.
Flagofnerd

2
Khi tạo bảng với dòng mã đầu tiên của bạn, tôi gặp lỗi "Hàm tạo DefaultTableModel (Đối tượng []) không được xác định"
ThisClark

4
@ThisClark: Cho rằng constructor DefaultTableModel, bạn cũng cần phải thêm rowCount, như:JTable table = new JTable(new DefaultTableModel(new Object[]{"Column1", "Column2"}, 20));
Plenus Franckly

57

Sử dụng:

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

Để thêm hàng vào JTable, một trong những cách là:

1) Tạo bảng bằng 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) Để thêm hàng:

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

9

Sử dụng

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

lấy mô hình với DefaultTableModel modelName = (DefaultTableModel) JTabelName.getModel();

Tạo một Vectơ với Vector vectorName = new Vector();

thêm rất nhiều row.add cột

thêm sớm chỉ cần thêm nó với modelName.addRow(Vector name);


2

Để hoàn thiện, trước tiên hãy đảm bảo rằng bạn đã nhập đúng để có thể sử dụng addRowhàm:

import javax.swing.table.*;

Giả sử jTable của bạn đã được tạo, bạn có thể tiếp tục và tạo phương thức thêm hàng của riêng mình, phương thức này sẽ chấp nhận các tham số bạn cần:

public void yourAddRow(String str1, String str2, String str3){
  DefaultTableModel yourModel = (DefaultTableModel) yourJTable.getModel();
  yourModel.addRow(new Object[]{str1, str2, str3});
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.