จะเพิ่มแถวใน JTable ได้อย่างไร?


คำตอบ:


174

TableModelที่อยู่เบื้องหลังการจับ JTable ข้อมูลทั้งหมดที่อยู่เบื้องหลังโต๊ะ ในการเพิ่มและลบแถวออกจากตารางคุณต้องใช้ไฟล์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
ในการสร้างตารางด้วยโค้ดบรรทัดแรกของคุณฉันได้รับข้อผิดพลาด "The constructor DefaultTableModel (Object []) is undefined"
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"});

11

ในการเพิ่มแถวให้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"});

8

ใช้

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


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});
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.